דחוס CMX באמצעות Java
בנה יישומי Java משלך כדי לדחוס קבצים של CMX באמצעות ממשקי API בצד השרת.
כיצד לדחוס קבצים CMX באמצעות Java
הכנת תמונות לפרסום כרוכה בהיבטים יצירתיים וטכניים כאחד, כולל דחיסת קבצים. בעוד שתמונות ברזולוציה גבוהה הן חיוניות עבור פרסום מודפס או חוצות, הן עשויות להפחית את ביצועי האינטרנט בשל גודל הקובץ הגדול שלהן. טכניקת דחיסת התמונה המתאימה משתנה בהתאם למטרה ולפלטפורמת הפרסום. קבצים גדולים יכולים להאט את זמני הטעינה, במיוחד בחיבורים ניידים, מה שמוביל לחוויית משתמש גרועה. משתמשים עלולים לנטוש אתר שלוקח יותר מדי זמן להיטען ולחפש חלופה מהירה יותר. לעומת זאת, דחיסת תמונה מוגזמת עלולה לגרום לטשטוש ולפיקסלציה, מה שפוגע בחוויית הצפייה. הבחירה הנכונה של אלגוריתמי דחיסה ויחסי דחיסה חיונית כדי ליצור איזון בין גודל הקובץ ואיכות התמונה. על מנת לדחוס קבצים CMX, נשתמש Aspose.Imaging for Java API שהוא עשיר בתכונות, חזק וקל לשימוש למניפולציה והמרה של תמונות עבור פלטפורמת Java. אתה יכול להוריד את הגרסה האחרונה שלו ישירות מ- Maven ולהתקין אותה בתוך ה-Maven שלך פרויקט מבוסס על ידי הוספת התצורות הבאות לקובץ pom.xml.
מאגר
<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>
שלבים לדחיסת CMXs באמצעות Java
אתה צריך את aspose-imaging-version-jdk16.jar כדי לנסות את זרימת העבודה הבאה בסביבה שלך.
- טען קבצים CMX בשיטת Image.load
- דחוס תמונות;
- שמור תמונה דחוסה לדיסק בפורמט הנתמך על ידי Aspose.Imaging
דרישות מערכת
Aspose.Imaging עבור Java נתמך בכל מערכות ההפעלה העיקריות. רק ודא שיש לך את התנאים המוקדמים הבאים.
- מותקן JDK 1.6 ומעלה.
דחוס תמונות CMX - Java
import com.aspose.imaging.FileFormat; | |
import com.aspose.imaging.IMultipageImage; | |
import com.aspose.imaging.Image; | |
import com.aspose.imaging.ImageOptionsBase; | |
import com.aspose.imaging.imageoptions.*; | |
import java.util.Arrays; | |
import java.util.List; | |
import java.util.function.Function; | |
compressVectorFormatToSvg(); | |
compressVectorFormatToEmf(); | |
compressVectorFormatToWmf(); | |
public static void compressVectorFormatToSvg() | |
{ | |
compressVectorFormat(skip -> { | |
SvgOptions options = new SvgOptions(); | |
options.setCompress(true); | |
return options; | |
}, ".svgz"); | |
} | |
public static void compressVectorFormatToEmf() | |
{ | |
compressVectorFormat(skip -> { | |
EmfOptions options = new EmfOptions(); | |
options.setCompress(true); | |
return options; | |
}, ".emz"); | |
} | |
public static void compressVectorFormatToWmf() | |
{ | |
compressVectorFormat(skip -> { | |
WmfOptions options = new WmfOptions(); | |
options.setCompress(true); | |
return options; | |
}, ".wmz"); | |
} | |
public static void compressVectorFormat(Function<Object, ImageOptionsBase> outOptionsCreator, String extension) | |
{ | |
String templatesFolder = "C:\\WorkDir\\"; | |
List<String> fileFormats = Arrays.asList("cdr", "cmx", "odg", "otg", "eps"); | |
fileFormats.forEach( | |
formatExt -> | |
{ | |
String inputFile = templatesFolder + "template." + formatExt; | |
String outputFile = templatesFolder + "compressed_" + formatExt.toUpperCase(); | |
try (Image image = Image.load(inputFile)) | |
{ | |
Function<Object, VectorRasterizationOptions> rasterizationOptionsFactory = (skip) -> | |
{ | |
VectorRasterizationOptions options; | |
long fileFormat = image.getFileFormat(); | |
if (fileFormat == FileFormat.Cdr) | |
{ | |
options = new CdrRasterizationOptions(); | |
} | |
else if (fileFormat == FileFormat.Cmx) | |
{ | |
options = new CmxRasterizationOptions(); | |
} | |
else if (fileFormat == FileFormat.Odg) | |
{ | |
options = new OdgRasterizationOptions(); | |
} | |
else if (fileFormat == FileFormat.Otg) | |
{ | |
options = new OtgRasterizationOptions(); | |
} | |
else | |
{ | |
return null; | |
} | |
options.setPageWidth(image.getWidth()); | |
options.setPageHeight(image.getHeight()); | |
return options; | |
}; | |
if ((image instanceof IMultipageImage) && ((IMultipageImage) image).getPageCount() > 1) | |
{ | |
IMultipageImage multiPage = (IMultipageImage) image; | |
final Image[] pages = multiPage.getPages(); | |
for (int pageIndex = 0; pageIndex < pages.length; pageIndex++) | |
{ | |
ImageOptionsBase options = outOptionsCreator.apply(null); | |
options.setVectorRasterizationOptions(rasterizationOptionsFactory.apply(null)); | |
pages[pageIndex].save(outputFile + "_p" + (pageIndex + 1) + extension, options); | |
} | |
} | |
else | |
{ | |
ImageOptionsBase options = outOptionsCreator.apply(null); | |
options.setVectorRasterizationOptions(rasterizationOptionsFactory.apply(null)); | |
image.save(outputFile + extension, options); | |
} | |
} | |
}); | |
} |
אודות Aspose.Imaging עבור API של Java
Aspose.Imaging API הוא פתרון לעיבוד תמונה ליצירה, שינוי, ציור או המרת תמונות (תמונות) בתוך יישומים. הוא מציע: עיבוד תמונה חוצה פלטפורמות, כולל אך לא רק המרות בין פורמטים שונים של תמונה (כולל עיבוד תמונה אחיד מרובה עמודים או ריבוי מסגרות), שינויים כגון ציור, עבודה עם פרימיטיבים גרפיים, טרנספורמציות (שינוי גודל, חיתוך, הפוך וסיבוב , בינאריזציה, גווני אפור, התאמה), תכונות מתקדמות של מניפולציה של תמונות (סינון, שיטוט, מיסוך, ביטול הטיה) ואסטרטגיות אופטימיזציה של זיכרון. זוהי ספרייה עצמאית ואינה תלויה בתוכנה כלשהי לפעולות תמונה. אפשר להוסיף בקלות תכונות המרת תמונה בעלות ביצועים גבוהים עם ממשקי API מקוריים בתוך פרויקטים. אלו הם 100% ממשקי API פרטיים מקומיים ותמונות מעובדות בשרתים שלך.דחוס CMX באמצעות אפליקציה מקוונת
דחוס מסמכים ב-CMX על ידי ביקור ב אתר האינטרנט של הדגמות חיות . להדגמה החיה יש את היתרונות הבאים
CMX מה זה CMX פורמט קובץ
קבצים עם סיומת CMX הם פורמט קובץ תמונה של Corel Exchange המשמש כמצגת על ידי יישומי CorelSuite. הוא מכיל נתוני תמונה כגרפיקה וקטורית וכן מטא נתונים המתארים את התמונה. ניתן לפתוח קבצי CMX על ידי CorelDraw, Corel Presentations, Paint Shop Pro וגרסאות מסוימות של Adobe Illustrator.
קרא עודפורמטי דחיסה נתמכים אחרים
באמצעות Java, אפשר לדחוס בקלות פורמטים שונים כולל.