ספריית יצירה ועיבוד של תמונות Java בחינם

API שימושי לעיבוד תמונה של Java בקוד פתוח המאפשר ליצור קריאה, כתיבה, שינוי גודל, חיתוך, הוספת סימני מים והמרת תמונות כמו PNG, JPEG, BMP, TIFF, ICO ועוד רבים אחרים.

בעולם הראייה הממוחשבת, לספריות יש תפקיד חיוני בפישוט תהליך ניתוח התמונה והווידאו. ספרייה אחת כזו שזכתה לתשומת לב משמעותית בשנים האחרונות היא ICAFE, ספריית קוד פתוח שפותחה על ידי Dragon66. ICAFE תומך בפורמטים פופולריים של תמונה כמו JPEG, PNG, BMP, TIFF, GIF, ואפילו פורמטי RAW ממצלמות דיגיטליות. זוהי ספריית Java רבת עוצמה ורב-תכליתית לעיבוד תמונה המציעה פונקציונליות עשירה ותכונות בסיסיות ומתקדמות שונות לעבודה עם תמונות, כגון יצירת תמונות חדשות, המרת תמונות בין פורמטים שונים, עבודה עם מטא נתונים של תמונה, יצירת GIF מונפש, מיזוג או פיצול תמונות, הסרה או הוספה של נתחים ל-PNG, דחיסת תמונות או המרה בין פורמטים, החלת מסננים על תמונות וכן הלאה.

ICAFE (Image & Camera Acquisition for Everyone) היא ספריית Java בקוד פתוח המפשטת את העבודה עם תמונות, ומציעה תכונות שונות לעיבוד, קידוד, פענוח וחילוץ מטא נתונים בתוך יישומי Java. תוכנן במקור לטיפול בתמונה, ICAFE התפתח לתמיכה במגוון רחב של פורמטים, כולל היכולת לעבד דיאגרמות. עם ה-API הגמיש והתמיכה במספר פורמטים של תמונות, ICAFE מספקת למפתחי תוכנה את הכלים הדרושים להם ליצירת יישומים רבי עוצמה, במיוחד לעבודה עם דיאגרמות. יתרה מכך, מפתחי תוכנה יכולים להשתמש בספרייה כדי לייבא דיאגרמות מפורמטים שונים, לתפעל אותם ואז לייצא אותם לפורמט הרצוי. עם קלות השימוש, סט תכונות חזק, תמיכה וגמישות בפורמטים רבים, ICAFE הוא משאב מצוין ורב ערך בערכת כלים של מפתחים.

Previous Next

תחילת העבודה עם ICAFE

הדרך הקלה והמומלצת ביותר להתקין את ICAFE היא באמצעות GitHub.

התקן את ICAFE באמצעות GitHub

go get -u https://github.com/dragon66/icafe.git 

דחיסה והמרה של תמונה

ספריית הקוד הפתוח של ICAFE מקלה על קריאה ודחיסת סוגים שונים של תמונות, דבר חיוני בעת עבודה עם קבצים גדולים או אופטימיזציה של יישומי אינטרנט. הספרייה מאפשרת דחיסה ללא אובדן ודחיסה של תמונות גם יחד. הנה דוגמה שמראה כיצד מפתחי תוכנה יכולים להשתמש בקוד לדחיסת תמונת JPEG קלט ולשמור אותה באיכות של 75%. מחלקת JPEGEncoder של ICAFE מפשטת את דחיסת התמונה, אותה ניתן לכוונן כך שיתאים לצרכי האפליקציה.

כיצד לדחוס תמונות של תמונת JPEG בתוך אפליקציות Node.js?


import com.icafe4j.image.jpeg.JPEGEncoder;

import java.io.File;
import java.io.IOException;

public class ImageCompressionExample {
    public static void main(String[] args) throws IOException {
        File inputFile = new File("input.jpg");
        File outputFile = new File("compressed_output.jpg");
        
        // Compress JPEG with 75% quality
        JPEGEncoder.encode(inputFile, outputFile, 0.75f);
        
        System.out.println("Image compressed successfully!");
    }
}

חילוץ מטא נתונים באמצעות יישומי Java

ספריית ICAFE תומכת בחילוץ ובמניפולציה של מטא נתונים של תמונה כגון EXIF, IPTC ו-XMP. זה שימושי במיוחד כאשר עוסקים בתמונות מצלמה או דיאגרמות הדורשות מידע נוסף כמו חותמות זמן, נתוני מיקום או פרטי זכויות יוצרים. בדוגמת הקוד הבאה, ICAFE קורא את המטא-נתונים של EXIF ​​מקובץ JPEG, מאחזר פרטים על דגם המצלמה ותאריך צילום התמונה. ניתן להרחיב את זה כדי לטפל בתגי מטא נתונים שונים אחרים, מה שהופך אותו לכלי מצוין לניהול אוספי תמונות.

כיצד לטעון ולקרוא ולחלץ את המטא נתונים של EXIF ​​מקובץ JPEG באמצעות Java API?


import com.icafe4j.image.metadata.Metadata;
import com.icafe4j.image.metadata.exif.Exif;
import com.icafe4j.image.jpeg.JPEGMetadataReader;

import java.io.File;
import java.io.IOException;

public class MetadataExample {
    public static void main(String[] args) throws IOException {
        File imageFile = new File("input.jpg");

        // Extract EXIF metadata from a JPEG file
        Metadata metadata = JPEGMetadataReader.readMetadata(imageFile);
        Exif exif = (Exif) metadata.getExif();

        if (exif != null) {
            System.out.println("Camera Model: " + exif.getCameraModel());
            System.out.println("Date Taken: " + exif.getDateTime());
        } else {
            System.out.println("No EXIF metadata found!");
        }
    }
}
 

מניפולציה (שינוי גודל, חיתוך, מסננים) תמונות באמצעות Java

ספריית הקוד הפתוח ICAFE מקלה על מפתחי תוכנה לקרוא ולתפעל סוגים שונים של תמונות בתוך יישומי Java. הספרייה תומכת באופן מלא במניפולציה קלה של תמונות, כולל שינוי גודל, חיתוך, החלת מסננים ועוד. בקטע הקוד הבא מפתחי תוכנה יכולים לשנות את גודל התמונה תוך שמירה על יחס הגובה-רוחב שלה. יכולות המניפולציה של ICAFE מאפשרות למפתחי תוכנה לשלב בקלות פונקציות עיבוד תמונה בתוכנה שלהם.

כיצד לטעון ולשנות גודל של תמונות באמצעות Java API?


public class ResizeImageExample {
    public static void main(String[] args) throws IOException {
        BufferedImage originalImage = ImageIO.read(new File("input.jpg"));
        
        // Resize the image to a width of 300 and maintain aspect ratio
        Image resizedImage = originalImage.getScaledInstance(300, -1, Image.SCALE_SMOOTH);
        BufferedImage resizedBufferedImage = new BufferedImage(300, resizedImage.getHeight(null), BufferedImage.TYPE_INT_RGB);
        
        Graphics2D g2d = resizedBufferedImage.createGraphics();
        g2d.drawImage(resizedImage, 0, 0, null);
        g2d.dispose();
        
        // Save the resized image
        ImageIO.write(resizedBufferedImage, "jpg", new File("resized_output.jpg"));
        
        System.out.println("Image resized successfully!");
    }
} 

להחיל סימון מים על תמונות באמצעות Java API?

הוספת סימני מים לתמונות היא פשוטה עם ספריית ICAFE. תכונה זו שימושית להגנה על קניין רוחני, במיוחד ביישומים העוסקים בתרשימים או בנכסי עיצוב. דוגמת הקוד הבאה מדגימה כיצד לכסות סימן מים טקסט על תמונה, ומבטיחה שהדיאגרמות או התמונות שלך מוגנות.

כיצד לכסות סימן מים של טקסט על תמונה באמצעות Java API?


public class WatermarkExample {
    public static void main(String[] args) throws IOException {
        BufferedImage image = ImageIO.read(new File("input.jpg"));
        
        // Add a text watermark
        TextWatermark watermark = new TextWatermark("Watermark", 50);
        BufferedImage watermarkedImage = watermark.apply(image);
        
        // Save the watermarked image
        ImageIO.write(watermarkedImage, "jpg", new File("watermarked_output.jpg"));
        
        System.out.println("Watermark applied successfully!");
    }
}
 עִברִית