مرحبا الرجال! يسعدني أن أشارك إعلان إصدار Aspose.Imaging 19.11 ، والذي تم تحسينه بميزات جديدة بما في ذلك دعم تغيير حجم صور SVG ومراقبة تقدم تحويل المستند. أحد أفضل الأشياء في فريق Aspose هو أنه ينشر كلاً من .NET و Java APIs في وقت واحد كل شهر. بهذه الطريقة يمكن لمستخدمي كل من واجهات برمجة التطبيقات استخدام الميزات المضافة حديثًا في وقت واحد.

في الأقسام التالية ، سأقدم لك نظرة عامة على الميزات والتحسينات الجديدة التي تم إجراؤها في واجهة برمجة التطبيقات.

قم بتغيير حجم SVG باستخدام C# و Java

SVG هو تنسيق ملف Scalable Vector Graphics ويستخدم محتوى قائم على XML لتصوير الرسومات. يمكن تغيير حجم تنسيق ملف SVG إلى أحجام مختلفة دون التأثير على الجودة حيث يتم استخدام المحتوى لتقديم الرسومات في الصورة. بمعنى آخر ، تنسيق SVG مستقل عن الدقة. لهذا الغرض ، تمت إضافة طريقة جديدة تغيير الحجم في Aspose.Imaging يمكن استخدامها للحصول على حجم البعد المطلوب لملفات SVG.

يوضح المثال التالي استخدام هذه الميزة:

void ResizeSvg()
{
       string inputFileName = "Logotype.svg";
       using (Image image = Image.Load(inputFileName))
       {
                image.Resize(image.Width * 10,image.Height * 15);
                image.Save("Logotype_10_15.png", new PngOptions()
                {
                    VectorRasterizationOptions = new SvgRasterizationOptions()
                });
       }
}

تطبيق Java المماثل هو كما يلي:

String inputFileName = "Logotype.svg";
try (Image image = Image.load(inputFileName))
{
	image.resize(image.getWidth() * 10,image.getHeight() * 15);
	image.save("Logotype_10_15.png", new PngOptions()
	{{
		setVectorRasterizationOptions(new SvgRasterizationOptions());
	}});
}

دعم تقدم تحويل المستند

في بعض الأحيان ، تعمل مع ملفات صور كبيرة وعند تحويل هذه الملفات إلى تنسيق آخر ، هناك فترة انتظار طويلة اعتمادًا على حجم الملف لإكمال عملية التقديم. في مثل هذه الظروف ، من الملائم جدًا تحديد تقدم التحويل لأنه قد يكون مفيدًا إذا كنت تنوي إظهار بعض الحالة للمستخدم النهائي فيما يتعلق بعملية التحويل. لهذا الغرض تمت إضافة خاصية جديدة ProgressCallback في Aspose.Imaging.

توضح الأمثلة التالية استخدام هذه الميزة:

// مثال على استخدام معالجات أحداث تقدم العملية المنفصلة لعمليات التحميل / التصدير
using (var image = Image.Load(fileName, new LoadOptions { ProgressEventHandler = ProgressCallback }))
{
    image.Save(fileName+".psd",
               new PsdOptions() { ProgressEventHandler = ExportProgressCallback });
}

internal void ProgressCallback(ProgressEventHandlerInfo info)
{
     Console.WriteLine("{0} : {1}/{2}", info.EventType, info.Value, info.MaxValue);
}

internal void ExportProgressCallback(ProgressEventHandlerInfo info)
{
     Console.WriteLine("Export event {0} : {1}/{2}", info.EventType, info.Value, info.MaxValue);
}


// مثال على استخدام معالج حدث تقدم العملية
using (var image = Image.Load(fileName, new LoadOptions { ProgressEventHandler = ProgressCallback }))
{
    image.Save();
}

internal void ProgressCallback(ProgressEventHandlerInfo info)
{
     Console.WriteLine("{0} : {1}/{2}", info.EventType, info.Value, info.MaxValue);
}

تطبيق Java المماثل هو كما يلي:

// مثال على استخدام معالجات أحداث تقدم العملية المنفصلة لعمليات التحميل / التصدير
String fileName = "some file to load";
LoadOptions loadOptions = new LoadOptions();
loadOptions.setProgressEventHandler(new ProgressEventHandler()
{
	@Override
	public void invoke(ProgressEventHandlerInfo info)
	{
		System.out.format("Load event %s : %d/%d\n", EventType.toString(EventType.class, info.getEventType())
				, info.getValue(), info.getMaxValue());
	}
});
try (Image image = Image.load(fileName, loadOptions))
{
	PsdOptions psdOptions = new PsdOptions();
	psdOptions.setProgressEventHandler(new ProgressEventHandler()
	{
		@Override
		public void invoke(ProgressEventHandlerInfo info)
		{
			System.out.format("Export event %s : %d/%d\n", EventType.toString(EventType.class, info.getEventType())
					, info.getValue(), info.getMaxValue());
		}
	});
	image.save(fileName + ".psd", psdOptions);
}

انتظر ، هناك العديد من الميزات والتحسينات وإصلاحات الأخطاء الأخرى المضمنة في هذا الإصدار. يمكنك الرجوع إلى قسم ملاحظات الإصدار للحصول على مزيد من التفاصيل.

عندما يسمح الوقت ، يمكنك أيضًا الاطلاع على أمثلة على جيثب جاهزة الصنع. يمكنك أيضًا التحدث عن هذا الإصدار والمشكلات الأخرى المتعلقة بواجهة برمجة التطبيقات في منتدى دعم المنتج.