通过 Java 压缩 OTG
构建您自己的 Java 应用以使用服务器端 API 压缩 OTG 文件。
如何使用 Java 压缩 OTG 文件
准备发布图像涉及创意和技术方面,包括文件压缩。虽然高分辨率图像对于印刷或户外广告至关重要,但由于文件大小较大,它们可能会降低网络性能。适当的图像压缩技术因目的和发布平台而异。大文件会减慢加载时间,尤其是在移动连接上,从而导致糟糕的用户体验。用户可能会放弃加载时间过长的网站并寻求更快的替代方案。相反,过度的图像压缩会导致模糊和像素化,从而降低观看体验。正确选择压缩算法和比率对于在文件大小和图像质量之间取得平衡至关重要。为了压缩 OTG 文件,我们将使用 Aspose.Imaging for Java API 是一个功能丰富、功能强大 易于使用的 Java 平台图像处理和转换 API。您可以直接从 Maven
并通过将以下配置添加到 pom.xml 将其安装在基于 Maven 的项目中。
Repository
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
Dependency
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-imaging</artifactId>
<version>version of aspose-imaging API</version>
<classifier>jdk16</classifier>
</dependency>
通过 Java 压缩 OTG 的步骤
你需要 aspose-imaging-version-jdk16.jar 在您自己的环境中尝试以下工作流程。
- 使用 Image.load 方法加载 OTG 文件 +压缩图像;
- 以 Aspose.Imaging 支持的格式将压缩图像保存到光盘
系统要求
所有主要操作系统都支持 Java 的 Aspose.Imaging。只需确保您具有以下先决条件。
- 已安装 JDK 1.6 或更高版本。
压缩 OTG 图像 - 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); | |
} | |
} | |
}); | |
} |
关于 Java API 的 Aspose.Imaging
Aspose.Imaging API 是一种图像处理解决方案,用于在应用程序中创建、修改、绘制或转换图像(照片)。它提供:跨平台的图像处理,包括但不限于各种图像格式之间的转换(包括统一的多页或多帧图像处理)、绘图等修改、使用图形基元、转换(调整大小、裁剪、翻转和旋转) 、二值化、灰度、调整)、高级图像处理功能(过滤、抖动、遮罩、去偏斜)和内存优化策略。它是一个独立的库,不依赖任何软件进行图像操作。可以在项目中使用原生 API 轻松添加高性能图像转换功能。这些是 100% 私有的本地 API,图像在您的服务器上处理。通过在线应用压缩 OTG
通过访问我们的 Live Demos 网站 压缩 OTG 文档。 现场演示有以下好处
OTG 什么是 OTG 文件格式
OTG 文件是使用遵循 OASIS Office Applications 1.0 规范的 OpenDocument 标准创建的绘图模板。它表示矢量图像的绘图元素的默认组织,可用于进一步增强文件的内容。
阅读更多其他支持的压缩格式
使用 Java,可以轻松压缩不同的格式,包括。