Оттенки серого TIFF изображений с помощью Java
Создавайте собственные приложения Java для файлов изображений TIFF в градациях серого, используя серверные API
Как сделать файлы TIFF в оттенках серого, используя Java
Яркость, многоцветность — таковы спутники красивых изображений. Однако использование цветной печати не всегда возможно. В этом случае возникает необходимость преобразовать фотографию в вариант в градациях серого цвета. Кроме того, данная функция может использоваться как самостоятельный художественный прием, добавит привлекательности вашему сайту. Произошедшую при переходе потерю цветовой информации, которая может ухудшить восприятие, оберните в свою пользу. Сделайте акцент на деталях изображения, фактуре поверхностей, используйте ритм чередования светлых и темных участков для создания уникального материала. Для файлов TIFF в градациях серого мы будем использовать Aspose.Imaging для Java API, который представляет собой многофункциональный, мощный и простой в использовании API для обработки и преобразования изображений для платформы Java. Вы можете скачать его последнюю версию прямо с Maven и установите его в своем проекте на основе Maven, добавив следующие конфигурации в файл pom.xml.
Репозиторий
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
Зависимость
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-imaging</artifactId>
<version>version of aspose-imaging API</version>
<classifier>jdk16</classifier>
</dependency>
Шаги к преобразованию изображений к оттенкам серого TIFF с помощью Java
Вам нужно aspose-imaging-version-jdk16.jar , чтобы попробовать следующий рабочий процесс в вашей собственной среде.
- загрузите файлы TIFF с помощью метода Image.Load;
- преобразуйте изображение в градации серого;
- сохраните изображение в градациях серого на диск в поддерживаемом Aspose.Imaging формате.
Системные Требования
Aspose.Imaging для Java поддерживается во всех основных операционных системах. Просто убедитесь, что у вас есть следующие предпосылки:
- Установлен JDK 1.6 или выше.
Изображения в оттенках серого TIFF - Java
import com.aspose.imaging.IMultipageImage; | |
import com.aspose.imaging.Image; | |
import com.aspose.imaging.RasterImage; | |
import com.aspose.imaging.imageoptions.PngOptions; | |
import java.io.File; | |
import java.util.Arrays; | |
import java.util.LinkedList; | |
import java.util.List; | |
import java.util.function.Consumer; | |
grayscale(); | |
public static void grayscale() | |
{ | |
filterImages(RasterImage::grayscale, "grayscale"); | |
} | |
static String templatesFolder = "D:\\"; | |
public static void filterImages(Consumer<RasterImage> doFilter, String filterName) | |
{ | |
List<String> rasterFormats = Arrays.asList("jpg", "png", "bmp", "apng", "dicom", | |
"jp2", "j2k", "tga", "webp", "tif", "gif", "ico"); | |
List<String> vectorFormats = Arrays.asList("svg", "otg", "odg", "eps", "wmf", "emf", "wmz", "emz", "cmx", "cdr"); | |
List<String> allFormats = new LinkedList<>(rasterFormats); | |
allFormats.addAll(vectorFormats); | |
allFormats.forEach( | |
formatExt -> | |
{ | |
String inputFile = templatesFolder + "template." + formatExt; | |
boolean isVectorFormat = vectorFormats.contains(formatExt); | |
//Need to rasterize vector formats before background remove | |
if (isVectorFormat) | |
{ | |
inputFile = rasterizeVectorImage(formatExt, inputFile); | |
} | |
String outputFile = templatesFolder + String.format("%s_%s.png", filterName, formatExt); | |
System.out.println("Processing " + formatExt); | |
try (RasterImage image = (RasterImage) Image.load(inputFile)) | |
{ | |
doFilter.accept(image); | |
//If image is multipage save each page to png to demonstrate results | |
if (image instanceof IMultipageImage && ((IMultipageImage) image).getPageCount() > 1) | |
{ | |
IMultipageImage multiPage = (IMultipageImage) image; | |
final int pageCount = multiPage.getPageCount(); | |
final Image[] pages = multiPage.getPages(); | |
for (int pageIndex = 0; pageIndex < pageCount; pageIndex++) | |
{ | |
String fileName = String.format("%s_page%d_%s.png", filterName, pageIndex, formatExt); | |
pages[pageIndex].save(fileName, new PngOptions()); | |
} | |
} | |
else | |
{ | |
image.save(outputFile, new PngOptions()); | |
} | |
} | |
//Remove rasterized vector image | |
if (isVectorFormat) | |
{ | |
new File(inputFile).delete(); | |
} | |
} | |
); | |
} | |
private static String rasterizeVectorImage(String formatExt, String inputFile) | |
{ | |
String outputFile = templatesFolder + "rasterized."+ formatExt + ".png"; | |
try (Image image = Image.load(inputFile)) | |
{ | |
image.save(outputFile, new PngOptions()); | |
} | |
return outputFile; | |
} |
Об Aspose.Imaging for Java API
Aspose.Imaging API — это решение для обработки изображений, позволяющее создавать, изменять, рисовать или конвертировать изображения и фотографии в приложениях. Он предлагает: кросс-платформенную обработку изображений, включая, помимо прочего, преобразования между различными форматами изображений (включая единую многостраничную или многокадровую обработку изображений), модификации, такие как рисование, работа с графическими примитивами, преобразования (изменение размера, обрезка, отражение и поворот), бинаризация, оттенки серого, настройка яркости, контрастности, расширенные функции обработки изображений (фильтрация, дизеринг, маскирование, устранение перекоса) и стратегии оптимизации памяти. Это автономная библиотека, которая не зависит от какого-либо программного обеспечения для операций с изображениями. Можно легко добавить в проекты высокопроизводительные функции преобразования изображений с помощью собственных API. Это 100% частные локальные API, а изображения обрабатываются на ваших серверах.Оттенки серого TIFF через онлайн-приложение
Документы TIFF в градациях серого, посетив наш веб-сайт Live Demos Online примеры имеют следующие преимущества
TIFF Чем является TIFF формат
TIFF или TIF, Tagged Image File Format, представляет собой растровые изображения, которые предназначены для использования на различных устройствах, соответствующих этому стандарту формата файлов. Он способен описывать двухуровневые, полутоновые, палитры и полноцветные данные изображения в нескольких цветовых пространствах. Он поддерживает схемы сжатия с потерями, а также без потерь, чтобы выбирать между пространством и временем для приложений, использующих формат. Формат является расширяемым и претерпел несколько изменений, что позволяет включать неограниченное количество частной или специальной информации. Формат не зависит от машины и свободен от ограничений, таких как процессор, операционная система или файловые системы.
Читать далееДругие поддерживаемые форматы оттенков серого
Используя Java, можно легко отображать различные форматы в оттенках серого, в том числе: