Безкоштовна бібліотека для створення та обробки зображень 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!");
    }
}
 Українська