שכפול תמונה

מצא תמונות כפולות באמצעות Java Cloud SDK

התמונה JPG היא פורמט פופולרי למטרות הדפסה ועריכה. יתר על כן, זהו פורמט תמונה פופולרי לשיתוף תמונות ותמונות אחרות באינטרנט ובין משתמשי נייד ומחשב. גודל הקובץ הקטן של תמונות JPG מאפשר אחסון של אלפי תמונות בשטח זיכרון קטן. כעת, מכיוון שהדחיסה אובדת, זה אומר שמידע מיותר מסוים נמחק לצמיתות. מצד שני, היתרון הגדול ביותר של PNG על פני JPEG הוא שהדחיסה היא ללא הפסדים, כלומר אין הפסד באיכות בכל פעם שהוא נפתח ונשמר שוב. PNG גם מטפל היטב בתמונות מפורטות ובעלות ניגודיות גבוהה. כעת במאמר זה, אנו הולכים לדון בפרטים כיצד להמיר JPG ל-PNG באמצעות Java Cloud SDK

API המרת תמונה

API מבוסס REST שלנו מציע את היכולות ליצור, לערוך ולהמיר קובצי תמונה למגוון [פורמטים נתמכים של קבצים]. כעת על מנת ליישם את התכונה לטעון ולהמיר jpg ל-png שקוף באפליקציית Java, עלינו להשתמש ב-Aspose.Imaging Cloud SDK עבור Java מכיוון שהוא עוטף סביב Cloud API. אז השלב הבא הוא להוסיף את ההתייחסות שלו בפרויקט java על ידי הכללת מידע הבא ב-pom.xml של פרויקט מסוג maven build.

<repositories> 
    <repository>
        <id>aspose-cloud</id>
        <name>artifact.aspose-cloud-releases</name>
        <url>http://artifact.aspose.cloud/repo</url>
    </repository>   
</repositories>

<dependencies>
    <dependency>
        <groupId>com.aspose</groupId>
        <artifactId>aspose-imaging-cloud</artifactId>
        <version>22.4</version>
    </dependency>
</dependencies>

לאחר שההפניה ל-JDK נוספה בפרויקט, השלב החשוב הבא הוא יצירת חשבון בחינם באמצעות Aspose Cloud Dashboard. כל שעליך לעשות הוא להירשם לתקופת ניסיון בחינם באמצעות כתובת דוא"ל חוקית. כעת התחבר באמצעות חשבון חדש שנוצר וחפש/צור זיהוי לקוח וסוד לקוח ב-Cloud Dashboard. פרטים אלה נדרשים למטרות אימות בסעיפים הבאים.

המרת JPG ל-PNG ב-Java

כעת נדון בפרטים כיצד אנו יכולים להמיר JPG ל-PNG באמצעות קטע קוד Java. על מנת לבצע את ההמרה, יש לנו שני ממשקי API להמרת תמונה לפורמט אחר:

ממשק ה-API של GET מצפה מאיתנו להעלות תחילה תמונה ל-Cloud Storage ואז להעביר את שמה בכתובת ה-API. לאחר עדכון פרמטרי התמונה, ה-API מחזיר את התמונה המעודכנת בתגובה. אם תרצה לשמור את התמונה המעודכנת ב-Cloud Storage, עליך לעשות זאת במפורש כפי שמוצג בדוגמאות שלהלן.

מצד שני, בעת קריאה ל-POST API השני, אתה יכול להעביר ישירות את התמונה בגוף הבקשה. זה גם מאפשר לך לשמור את התמונה המעודכנת ב-Cloud Storage על ידי ציון ערך הפרמטר outPath. עם זאת, אם לא תציין את הערך, התגובה מכילה תמונה זורמת.

  • צור מופע של ImagingApi על סמך אישורי הלקוח המותאמים אישית שלך
  • קרא את כל קובצי ה-JPG מהתיקייה המקומית באמצעות אובייקט File[]
  • חזור על קבצים במערך והגיע לתוכן של תמונה בודדת למופע byte[]
  • כעת צור אובייקט של CreateConvertedImageRequest שבו אנו מציינים את פורמט תמונת הפלט כ-PNG
  • קרא לשיטה createConvertedImage(…) ששומרת JPG כ-PNG ומחזירה תוצאה כזרם תגובה
  • לבסוף שמור את קובץ ה-PNG בכונן המקומי באמצעות אובייקט FileOutputStream
// קבל ClientID ו-ClientSecret מ-https://dashboard.aspose.cloud/
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";

// ליצור אובייקט הדמיה
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);

File directory = new File("/Users/");
//קבל את כל הקבצים מהתיקייה
File[] allFiles = directory.listFiles();
if (allFiles == null || allFiles.length == 0) {
    throw new RuntimeException("No files present in the directory: " + directory.getAbsolutePath());
}

//הגדר את הרחבות התמונות הנדרשות כאן.
List<String> supportedImageExtensions = Arrays.asList("jpg","jpeg");

int counter =0;
//רשימה מסוננת של קובצי תמונות JPG
List<File> acceptedImages = new ArrayList<>();

// חזור על כל קובץ תמונה שנקרא מתיקיה מקומית			 
for (File file : allFiles) {
    //נתח את סיומת הקובץ
    String fileExtension = file.getName().substring(file.getName().lastIndexOf(".") + 1);
	
    //בדוק אם התוסף מופיע ב-supportedImageExtensions
    if (supportedImageExtensions.stream().anyMatch(fileExtension::equalsIgnoreCase)) {
	//הוסף את התמונה לרשימה המסוננת
	acceptedImages.add(file);
                  
    // קרא תוכן תמונה JPG
    byte[] bytes = Files.readAllBytes(acceptedImages.get(counter).toPath());
    
    // צור בקשה להמרת תמונה עם פורמט שנוצר כ-PNG
    CreateConvertedImageRequest request = new CreateConvertedImageRequest(bytes, "PNG", null, null);
    
    // המר JPG ל-PNG והחזר את הקובץ שנוצר בזרם התגובה
    byte[] exportedImage = imageApi.createConvertedImage(request);
    
    // שמור תמונה מיוצאת לאחסון מקומי
    FileOutputStream fos = new FileOutputStream(directory + "/"+file.getName().replaceFirst("[.][^.]+$", "")+".png");
    fos.write(exportedImage);
    fos.close();
    }
}

שנה JPG ל-PNG באמצעות פקודות cURL

מכיוון שאנו יכולים לגשת לממשקי API של REST באמצעות פקודות cURL, אז בסעיף זה, אנו בוחנים את הפרטים להמרת JPG ל-PNG שקוף. כעת כדרישה מוקדמת, עלינו ליצור תחילה אסימון גישה ל-JWT (בהתבסס על אישורי לקוח) תוך ביצוע הפקודה הבאה.

curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=bb959721-5780-4be6-be35-ff5c3a6aa4a2&client_secret=4d84d5f6584160cbd91dba1fe145db14" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"

כעת אנו הולכים להשתמש בקריאה של ConvertImage API, הוא מצפה שהקלט JPG יהיה זמין כבר באחסון בענן. כעת אנא בצע את הפקודה הבאה כדי לשנות JPG ל-PNG.

curl -v -X GET "https://api.aspose.cloud/v3.0/imaging/image1.jpg/convert?format=PNG" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>" \
-o Converted.png

סיכום

מאמר זה סיפק כמה פרטים מדהימים כיצד אנו יכולים להמיר JPG ל-PNG באמצעות קטע קוד Java. באופן דומה, דנו גם בשלבים להמרת JPG ל-PNG שקוף באמצעות פקודות cURL. לידיעתך, תיעוד המוצר הוא מקום מדהים ללמוד על תכונות מרגשות אחרות המוצעות על ידי ה-API. במקרה שאתה צריך לנסות את ממשקי ה-API האלה בתוך הדפדפן, נסה להשתמש ב-swagger API Reference.

הלפני אחרון, אנא שים לב שכל ערכות SDK הענן שלנו מתפרסמות ברישיון MIT, אז אתה יכול לשקול להוריד את קוד המקור המלא מ-GitHub ולשנות אותו בהתאם לדרישות שלך. לבסוף, אם אתה נתקל בבעיות כלשהן במהלך השימוש ב-API, תוכל לשקול לפנות אלינו לפתרון מהיר דרך פורום תמיכת מוצרים בחינם.

מאמרים קשורים

אנא בקר בקישורים הבאים כדי ללמוד עוד על: