Сжатие изображений ODG с помощью Java
Создавайте собственные приложения Java для сжатия (компрессии) файлов ODG с помощью серверных API
Как сжать (компрессировать) файлы ODG с помощью Java
Подготовка изображений к публикации подразумевает не только творческий процесс, ну и такую техническую работу, как, например, сжатие (компрессию) файлов. Как правило, для бумажных носителей или наружной рекламы требуются изображения в высоком разрешении, а для интернет-сайтов большой размер файла скорее будет недостатком. Исходя из назначения и среды публикации можно использовать разные параметры сжатия изображений. Файлы большого размера долго скачиваются на устройства, особенно на мобильном соединении, и ухудшают пользовательский опыт. Пользователи могут не дождаться загрузки, закрыть сайт и попытаться поискать более быстрый ресурс. В то же время, сильно сжатые изображения страдают от размытости, пиксельности и портят впечатление от просмотра. Сохранять необходимый баланс между размером файла и качеством изображения поможет оптимальный выбор алгоритмов и степени сжатия. Чтобы сжать файлы ODG, мы будем использовать 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>
Действия по сжатию ODG с помощью Java
Вам нужно aspose-imaging-version-jdk16.jar , чтобы попробовать следующий рабочий процесс в вашей собственной среде.
- Загрузить файлы ODG с помощью метода Image.load
- Сжимать изображения;
- Сохранение сжатого изображения на диск в поддерживаемом Aspose.Imaging формате
Системные Требования
Aspose.Imaging для Java поддерживается во всех основных операционных системах. Просто убедитесь, что у вас есть следующие предпосылки:
- Установлен JDK 1.6 или выше.
Сжатие ODG изображений - Java
import com.aspose.imaging.FileFormat; | |
import com.aspose.imaging.IMultipageImage; | |
import com.aspose.imaging.Image; | |
import com.aspose.imaging.ImageOptionsBase; | |
import com.aspose.imaging.imageoptions.*; | |
import java.util.Arrays; | |
import java.util.List; | |
import java.util.function.Function; | |
compressVectorFormatToSvg(); | |
compressVectorFormatToEmf(); | |
compressVectorFormatToWmf(); | |
public static void compressVectorFormatToSvg() | |
{ | |
compressVectorFormat(skip -> { | |
SvgOptions options = new SvgOptions(); | |
options.setCompress(true); | |
return options; | |
}, ".svgz"); | |
} | |
public static void compressVectorFormatToEmf() | |
{ | |
compressVectorFormat(skip -> { | |
EmfOptions options = new EmfOptions(); | |
options.setCompress(true); | |
return options; | |
}, ".emz"); | |
} | |
public static void compressVectorFormatToWmf() | |
{ | |
compressVectorFormat(skip -> { | |
WmfOptions options = new WmfOptions(); | |
options.setCompress(true); | |
return options; | |
}, ".wmz"); | |
} | |
public static void compressVectorFormat(Function<Object, ImageOptionsBase> outOptionsCreator, String extension) | |
{ | |
String templatesFolder = "C:\\WorkDir\\"; | |
List<String> fileFormats = Arrays.asList("cdr", "cmx", "odg", "otg", "eps"); | |
fileFormats.forEach( | |
formatExt -> | |
{ | |
String inputFile = templatesFolder + "template." + formatExt; | |
String outputFile = templatesFolder + "compressed_" + formatExt.toUpperCase(); | |
try (Image image = Image.load(inputFile)) | |
{ | |
Function<Object, VectorRasterizationOptions> rasterizationOptionsFactory = (skip) -> | |
{ | |
VectorRasterizationOptions options; | |
long fileFormat = image.getFileFormat(); | |
if (fileFormat == FileFormat.Cdr) | |
{ | |
options = new CdrRasterizationOptions(); | |
} | |
else if (fileFormat == FileFormat.Cmx) | |
{ | |
options = new CmxRasterizationOptions(); | |
} | |
else if (fileFormat == FileFormat.Odg) | |
{ | |
options = new OdgRasterizationOptions(); | |
} | |
else if (fileFormat == FileFormat.Otg) | |
{ | |
options = new OtgRasterizationOptions(); | |
} | |
else | |
{ | |
return null; | |
} | |
options.setPageWidth(image.getWidth()); | |
options.setPageHeight(image.getHeight()); | |
return options; | |
}; | |
if ((image instanceof IMultipageImage) && ((IMultipageImage) image).getPageCount() > 1) | |
{ | |
IMultipageImage multiPage = (IMultipageImage) image; | |
final Image[] pages = multiPage.getPages(); | |
for (int pageIndex = 0; pageIndex < pages.length; pageIndex++) | |
{ | |
ImageOptionsBase options = outOptionsCreator.apply(null); | |
options.setVectorRasterizationOptions(rasterizationOptionsFactory.apply(null)); | |
pages[pageIndex].save(outputFile + "_p" + (pageIndex + 1) + extension, options); | |
} | |
} | |
else | |
{ | |
ImageOptionsBase options = outOptionsCreator.apply(null); | |
options.setVectorRasterizationOptions(rasterizationOptionsFactory.apply(null)); | |
image.save(outputFile + extension, options); | |
} | |
} | |
}); | |
} |
Об Aspose.Imaging for Java API
Aspose.Imaging API — это решение для обработки изображений, позволяющее создавать, изменять, рисовать или конвертировать изображения и фотографии в приложениях. Он предлагает: кросс-платформенную обработку изображений, включая, помимо прочего, преобразования между различными форматами изображений (включая единую многостраничную или многокадровую обработку изображений), модификации, такие как рисование, работа с графическими примитивами, преобразования (изменение размера, обрезка, отражение и поворот), бинаризация, оттенки серого, настройка яркости, контрастности, расширенные функции обработки изображений (фильтрация, дизеринг, маскирование, устранение перекоса) и стратегии оптимизации памяти. Это автономная библиотека, которая не зависит от какого-либо программного обеспечения для операций с изображениями. Можно легко добавить в проекты высокопроизводительные функции преобразования изображений с помощью собственных API. Это 100% частные локальные API, а изображения обрабатываются на ваших серверах.Сжатие файлов ODG через онлайн-приложение
Сожмите документы ODG, посетив наш веб-сайт Live Demos . Online примеры имеют следующие преимущества
ODG Чем является ODG формат
Формат файла ODG используется приложением Draw Apache OpenOffice для хранения элементов чертежа в виде векторного изображения. Он следует спецификациям формата файлов на основе XML, изложенным в Улучшении стандартов структурной информации (OASIS). ODG представляет рисунки в виде векторных изображений с использованием точек, линий и кривых. Помимо OpenOffice, LibreOffice и другие приложения также поддерживают работу с форматом файлов ODG. Другие форматы, поддерживаемые OpenOffice, например, включают ODT, ODF, ODP и ODS.
Читать далееДругие поддерживаемые форматы сжатия
Используя Java, можно легко сжимать различные форматы, в том числе: