Обработка и манипулиране на изображения на Java с отворен код
Водещата библиотека с отворен код за редактиране и манипулиране на изображения на Java позволява четене, писане, манипулиране и конвертиране на широко използвани формати като PNG, JPEG, BMP, TIFF, ICO и други.
Какво е Apache Commons Imaging?
Apache Commons Imaging, известен преди като Sanselan, е мощна Java библиотека с отворен код, разработена в рамките на проекта Apache Commons. Той е част от по-широкия проект Apache Commons и предлага на разработчиците на софтуер ефективен начин за четене и запис на различни формати на изображения, без да разчитат на външни библиотеки. Разработчиците на софтуер могат да обработват голямо разнообразие от формати на изображения, опростявайки задачи като четене и писане на изображения, преобразуване в други формати, обработка на метаданни на изображения, персонализирано изобразяване на изображения, цветови модели на изображения, манипулиране на изображения и т.н. Гъвкавостта на библиотеката я прави идеална за приложения, изискващи обработка на изображения, без да се разчита на външни зависимости. Библиотеката предоставя разнообразие от филтри за изображения, включително замъгляване, изостряне и откриване на ръбове.
Apache Commons Imaging е стабилна и гъвкава библиотека, която опростява процеса на работа с файлове с изображения в Java приложения. Това е базирана на Java библиотека, която поддържа множество формати на изображения като PNG, JPEG, BMP, GIF, TIFF, ICO и т.н. Освен това предлага инструменти за анализ на изображения, включително изчисляване на хистограма, преобразуване на цветовото пространство и сегментиране на изображението. Това е идеален избор за разработчици, изследователи и ентусиасти. Библиотеката предлага ефективен и лесен за използване API за манипулиране на изображения, който може да бъде особено полезен в среди с ограничени ресурси. Независимо дали работите върху проект, който изисква обработка на изображения, или просто искате да експериментирате с манипулиране на изображения, Apache Commons Imaging определено си заслужава да бъде проучен.
Първи стъпки с Apache Commons Imaging
Препоръчителният начин за инсталиране на Apache Commons Imaging е използването на Maven Repository. Моля, използвайте следната команда за гладка инсталация.
Хранилище на Maven за Apache Commons Imaging
<repositories>
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://releases.aspose.com/java/repo/</url>
</repository>
</repositories>
//Define Aspose.PDF for Java API Dependency
<dependencies>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-imaging</artifactId>
<version>1.0.0-alpha5</version>
</dependency>
</dependencies>
Инсталирайте Apache Commons Imaging чрез GitHub
go get -u https://github.com/apache/commons-imaging.git
You can download the library directly from GitHub product page
Преобразуване на изображения в Java приложения
Диаграмите, съхранени в един формат (напр. PNG), може да се наложи да бъдат преобразувани в друг формат (напр. BMP или JPEG) за целите на съвместимостта или оптимизацията. Apache Commons Imaging предлага функции за конвертиране, позволявайки на разработчиците да конвертират различни файлови формати на изображения между поддържаните формати без усилие. Следващият пример показва колко лесно разработчиците на софтуер могат да конвертират PNG файл във формат BMP. Процесът е лесен и може да обработва преобразувания между всички поддържани формати, което го прави идеален за приложения, които трябва да записват изображения в множество формати за целите на съвместимостта.
Как да конвертирате PNG файл в BMP файлов формат чрез Java API?
File inputFile = new File("diagram.png");
BufferedImage image = Imaging.getBufferedImage(inputFile);
File outputFile = new File("converted_image.bmp");
Imaging.writeImage(image, outputFile, ImageFormats.BMP, null);
Манипулиране на изображения чрез Java библиотека
Apache Commons Imaging може да се използва в комбинация с други библиотеки на Java като BufferedImage за извършване на общи трансформации на изображения като преоразмеряване, изрязване и мащабиране. Методът Scalr.resize() от друга библиотека за обработка на изображения на Java (imgscalr) се използва за преоразмеряване, последвано от запазване на преоразмереното изображение с помощта на Apache Commons Imaging. Това позволява безпроблемна интеграция с други Java библиотеки за разширено манипулиране на изображения.
Как да преоразмерите изображение в Java приложения?
BufferedImage originalImage = Imaging.getBufferedImage(new File("sample_image.png"));
BufferedImage resizedImage = Scalr.resize(originalImage, 300); // Resize width to 300px
File outputFile = new File("resized_image.png");
Imaging.writeImage(resizedImage, outputFile, ImageFormats.PNG, null);
Извличане на метаданни за изображения чрез Java API
Една от ключовите характеристики на Apache Commons Imaging е способността му да извлича метаданни от изображения в Java приложения. За диаграми тези метаданни могат да съдържат полезна информация като дата на създаване, история на модификациите или подробности за автора. Тази възможност позволява на разработчиците да обработват диаграмни изображения по начини, които надхвърлят простото показване. Следващият пример показва как разработчиците на софтуер могат да извличат метаданни от изображения в Java приложения.
Как да извличам метаданни от изображения чрез Java API?
File imageFile = new File("diagram.png");
ImageInfo imageInfo = Imaging.getImageInfo(imageFile);
System.out.println("Format: " + imageInfo.getFormat());
System.out.println("Width: " + imageInfo.getWidth());
System.out.println("Height: " + imageInfo.getHeight());
Персонализирано изобразяване на изображения в Java приложения
Софтуерните разработчици могат да използват Apache Commons Imaging, за да генерират изображение в движение или да променят съществуващи в java приложения. Чрез комбиниране на библиотеката с родния Graphics2D на Java е възможно програмно да рисувате изображения или да добавяте анотации. Следният пример за код създава празно изображение, добавя текст към него и го записва като PNG файл. Той демонстрира как Apache Commons Imaging може да работи с API за рисуване на Java, за да генерира изображения от нулата.
Как да генерирате изображения от нулата чрез Java?
BufferedImage image = new BufferedImage(400, 300, BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = image.createGraphics();
graphics.setPaint(Color.WHITE);
graphics.fillRect(0, 0, image.getWidth(), image.getHeight());
graphics.setPaint(Color.BLACK);
graphics.setFont(new Font("Arial", Font.BOLD, 20));
graphics.drawString("Custom Diagram", 100, 150);
graphics.dispose();
File outputFile = new File("custom_image.png");
Imaging.writeImage(image, outputFile, ImageFormats.PNG, null);