Бесплатная библиотека создания и обработки изображений 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!");
    }
}
 Русский