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