ضبط APNG s عبر Java
أنشئ تطبيقات Java الخاصة بك لضبط ملفات APNG باستخدام واجهات برمجة التطبيقات من جانب الخادم.
كيفية ضبط APNG الملفات باستخدام Java
حتى المصورين الأكثر خبرة يمكن أن يرتكبوا أخطاء أو يواجهوا ظروف إضاءة غير مناسبة أثناء التصوير. مثل هذه المواقف يمكن أن تؤدي إلى عيوب في الصورة، ولكن حتى الصورة السيئة لديها فرصة. باستخدام مكتبة Java، يمكنك تصحيح هذه المشكلات برمجيًا عن طريق ضبط السطوع والتباين وجاما اللون. إذا أصبحت الصورة داكنة جدًا، فإن زيادة السطوع ستؤدي إلى تفتيح المناطق المظلمة، مما يجعل التفاصيل المخفية مسبقًا مرئية. يؤدي ضبط التباين إلى زيادة الفرق بين المناطق الفاتحة والداكنة، مما يؤدي إلى توسيع نطاق السطوع للحصول على صورة محسنة. إذا قمت بالتقاط صورة تحت إضاءة صناعية مما أدى إلى تدرج ألوان غير مرغوب فيه، فاستخدم ضبط جاما اللون لتصحيح توازن اللون الأبيض. من أجل ضبط ملفات APNG، سنستخدم Aspose.Imaging for Java API وهي واجهة برمجة تطبيقات لمعالجة الصور وتحويلها غنية بالميزات وقوية وسهلة الاستخدام لمنصة Java الأساسية. يمكنك تنزيل أحدث إصدار له مباشرةً من Maven وتثبيته داخل Maven الخاص بك مشروع قائم على أساس إضافة التكوينات التالية إلى ملف pom.xml.
Repository
<repository>
<id> AsposeJavaAPI </id>
<name> Aspose Java API </name>
<url> https://repository.aspose.com/repo/ </url>
</repository>
التبعية
<dependency>
<groupId> com.aspose </groupId>
<artifactId>aspose-imaging</artifactId>
<version>version of aspose-imaging API</version>
<classifier>jdk16</classifier>
</dependency>
خطوات لضبط APNG s عبر Java
أنت بحاجة إلى aspose-imaging-version-jdk16.jar لتجربة سير العمل التالي في بيئتك الخاصة.
- تحميل ملفات APNG بطريقة Image.Load
- ضبط الصور.
- حفظ الصورة المضغوطة على القرص بتنسيق Aspose.Imaging المدعوم
متطلبات النظام
Aspose.Imaging for Java مدعوم على جميع أنظمة التشغيل الرئيسية. فقط تأكد من أن لديك المتطلبات الأساسية التالية.
- تم تثبيت JDK 1.6 أو أعلى.
ضبط صور APNG - Java
import com.aspose.imaging.IMultipageImage; | |
import com.aspose.imaging.Image; | |
import com.aspose.imaging.RasterImage; | |
import com.aspose.imaging.imageoptions.PngOptions; | |
import java.io.File; | |
import java.util.Arrays; | |
import java.util.LinkedList; | |
import java.util.List; | |
import java.util.function.Consumer; | |
adjustBrightness(); | |
public static void adjustGammaRGB() | |
{ | |
filterImages(image -> | |
{ | |
//https://apireference.aspose.com/imaging/java/com.aspose.imaging/RasterImage#adjustGamma-float-float-float- | |
image.adjustGamma(5, 0.1f, 0.1f); | |
}, "adjustgammargb"); | |
} | |
public static void adjustGamma() | |
{ | |
filterImages(image -> | |
{ | |
//https://apireference.aspose.com/imaging/java/com.aspose.imaging/RasterImage#adjustGamma-float- | |
image.adjustGamma(3); | |
}, "adjustgamma"); | |
} | |
public static void adjustContrast() | |
{ | |
filterImages(image -> | |
{ | |
//https://apireference.aspose.com/imaging/java/com.aspose.imaging/RasterImage#adjustContrast-float- | |
image.adjustContrast(50); | |
}, "adjustcontrast"); | |
} | |
public static void adjustBrightness() | |
{ | |
filterImages(image -> | |
{ | |
//https://apireference.aspose.com/imaging/java/com.aspose.imaging/RasterImage#adjustBrightness-int- | |
image.adjustBrightness(100); | |
}, "adjustbrightness"); | |
} | |
static String templatesFolder = "D:\\"; | |
public static void filterImages(Consumer<RasterImage> doFilter, String filterName) | |
{ | |
List<String> rasterFormats = Arrays.asList("jpg", "png", "bmp", "apng", "dicom", | |
"jp2", "j2k", "tga", "webp", "tif", "gif", "ico"); | |
List<String> vectorFormats = Arrays.asList("svg", "otg", "odg", "eps", "wmf", "emf", "wmz", "emz", "cmx", "cdr"); | |
List<String> allFormats = new LinkedList<>(rasterFormats); | |
allFormats.addAll(vectorFormats); | |
allFormats.forEach( | |
formatExt -> | |
{ | |
String inputFile = templatesFolder + "template." + formatExt; | |
boolean isVectorFormat = vectorFormats.contains(formatExt); | |
//Need to rasterize vector formats before background remove | |
if (isVectorFormat) | |
{ | |
inputFile = rasterizeVectorImage(formatExt, inputFile); | |
} | |
String outputFile = templatesFolder + String.format("%s_%s.png", filterName, formatExt); | |
System.out.println("Processing " + formatExt); | |
try (RasterImage image = (RasterImage) Image.load(inputFile)) | |
{ | |
doFilter.accept(image); | |
//If image is multipage save each page to png to demonstrate results | |
if (image instanceof IMultipageImage && ((IMultipageImage) image).getPageCount() > 1) | |
{ | |
IMultipageImage multiPage = (IMultipageImage) image; | |
final int pageCount = multiPage.getPageCount(); | |
final Image[] pages = multiPage.getPages(); | |
for (int pageIndex = 0; pageIndex < pageCount; pageIndex++) | |
{ | |
String fileName = String.format("%s_page%d_%s.png", filterName, pageIndex, formatExt); | |
pages[pageIndex].save(fileName, new PngOptions()); | |
} | |
} | |
else | |
{ | |
image.save(outputFile, new PngOptions()); | |
} | |
} | |
//Remove rasterized vector image | |
if (isVectorFormat) | |
{ | |
new File(inputFile).delete(); | |
} | |
} | |
); | |
} | |
private static String rasterizeVectorImage(String formatExt, String inputFile) | |
{ | |
String outputFile = templatesFolder + "rasterized."+ formatExt + ".png"; | |
try (Image image = Image.load(inputFile)) | |
{ | |
image.save(outputFile, new PngOptions()); | |
} | |
return outputFile; | |
} |
حول Aspose.Imaging Java API
Aspose.Imaging API هو حل لمعالجة الصور لإنشاء أو تعديل أو رسم أو تحويل الصور (الصور) داخل التطبيقات. يوفر: معالجة الصور عبر الأنظمة الأساسية ، بما في ذلك على سبيل المثال لا الحصر ، التحويلات بين تنسيقات الصور المختلفة (بما في ذلك معالجة الصور متعددة الصفحات أو متعددة الإطارات) ، والتعديلات مثل الرسم ، والعمل مع الرسوم الأولية ، والتحويلات (تغيير الحجم ، والقص ، والوجه والتدوير ، وثنائي ، وتدرج رمادي ، وضبط) ، وميزات معالجة الصور المتقدمة (الترشيح ، والتردد ، والإخفاء ، والتكديس) ، واستراتيجيات تحسين الذاكرة. إنها مكتبة قائمة بذاتها ولا تعتمد على أي برنامج لعمليات الصور. يمكن للمرء بسهولة إضافة ميزات تحويل الصور عالية الأداء باستخدام واجهات برمجة التطبيقات الأصلية داخل المشاريع. هذه واجهات برمجة تطبيقات داخلية خاصة بنسبة 100٪ وتتم معالجة الصور على خوادمك.اضبط APNG عبر تطبيق عبر الإنترنت
اضبط مستندات APNG من خلال زيارة [Live Demos website] ( https://products.aspose.app/imaging/image-Adjust) . يحتوي العرض التوضيحي المباشر على الفوائد التالية
APNG ما هو APNG تنسيق الملف
الملف ذو الامتداد .apng (الرسوم المتحركة للشبكة المحمولة) هو تنسيق رسومي نقطي وهو امتداد غير رسمي لـ Portable Network Graphic (PNG). وهي تتألف من إطارات متعددة (كل صورة من صورة PNG) تمثل تسلسلًا للرسوم المتحركة. هذا يعطي تصورًا مشابهًا لملف GIF. تدعم ملفات APNG صور 24 بت وشفافية 8 بت. APNG متوافق مع الإصدارات السابقة مع ملفات GIF غير المتحركة. تستخدم ملفات APNG نفس امتداد .png ويمكن فتحها بواسطة تطبيقات مثل Mozilla Firefox و Chrome مع دعم APNG وتطبيقات iMessage لنظام التشغيل iOS 10.
اقرأ أكثرتنسيقات الضبط الأخرى المدعومة
باستخدام Java ، يمكن بسهولة ضبط التنسيقات المختلفة بما في ذلك.