在各种情况下,图像会被压缩以减小文件大小。为此,不同的在线或离线应用程序允许您应用图像压缩。但是,在某些情况下,您可能需要在 Web 或桌面应用程序中实现图像压缩功能。对于这种情况,本文介绍了如何使用 Java 以编程方式压缩包括 PNG、JPEG 和 TIFF 在内的图像。
最佳 Java 图像压缩 API - 免费下载
Aspose.Imaging for Java 是一个强大的 API,允许您从 Java 应用程序中执行各种图像处理操作。此外,它还可以让您无缝压缩 PNG、JPEG 和 TIFF 图像。为了使用 API,您可以 下载 其 JAR 或将其安装在基于 Maven 的应用程序中。
<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>20.12</version>
<classifier>jdk16</classifier>
</dependency>
在 Java 中压缩 PNG 图像
PNG 格式支持无损压缩,这意味着压缩 PNG 图像将减少其文件大小但不会降低质量。对于 PNG 图像,Aspose.Imaging for Java 允许您将压缩级别设置为 0 到 9,其中 0 和 9 分别是最小和最大压缩级别。以下是使用 Java 压缩 PNG 图像的步骤。
- 首先,使用 Image 类加载 PNG 图像。
- 创建 PngOptions 类的实例。
- 使用 PngOptions.setCompressionLevel(int) 方法设置压缩级别。
- 最后,使用 Image.save(String, PngOptions) 方法保存压缩的 PNG 图像。
以下代码示例展示了如何使用 Java 压缩 PNG 图像。
// 从文件(或流)加载图像
Image image = Image.load("aspose_logo.png");
// 循环可能的压缩级别范围
for (int i = 0; i <= 9; i++) {
// 为每个生成的 PNG 创建一个 PngOptions 实例
PngOptions options = new PngOptions();
// 设置压缩级别
options.setCompressionLevel(i);
// 将结果保存在磁盘(或流)上
image.save("CompressingFiles_out" + i + ".png", options);
}
使用 Java 进行 JPEG 图像压缩
对于 JPEG 图像压缩,Aspose.Imaging for Java 提供以下压缩类型。
- 基线
- 进步
- 无损
- JPEGLs
以下是使用 Java 将上述压缩类型之一应用于 JPEG 图像的步骤。
- 首先,使用 Image 类加载 JPEG 图像。
- 创建 JpegOptions 类的实例。
- 使用 JpegOptions.setCompressionType(JpegCompressionMode) 方法设置压缩级别。
- 最后,使用 Image.save(String, JpegOptions) 方法保存压缩的 JPEG 图像。
以下代码示例展示了如何使用 Java 压缩 JPEG 图像。
// 加载图像
Image original = Image.load("Input.jpeg");
try
{
JpegOptions jpegOptions = new JpegOptions()
{{
// 应用压缩
setCompressionType(JpegCompressionMode.Progressive);
}};
// 保存压缩图像
original.save("result.jpg", jpegOptions);
}
finally
{
original.dispose();
}
使用 Java 压缩 TIFF 图像
Aspose.Imaging for Java 提供了多种TIFF 压缩类型,包括 LZW、Packbits、CCIT Fax 3 & 4 等。因此,您可以选择最适合您要求的压缩类型。以下是使用 Java 执行 TIFF 压缩的步骤。
- 首先,使用 Image 类加载 TIFF 图像。
- 创建 TiffOptions 类的实例。
- 使用 TiffOptions.setCompression(TiffCompressions) 方法设置压缩级别。
- 设置其他选项,例如每个样本的位数、光度、调色板等。
- 最后,使用 Image.save(String, TiffOptions) 方法保存压缩的 TIFF 图像。
以下代码示例显示了如何使用 Java 压缩 TIFF 图像。
// 通过文件路径位置或流加载图像
try (Image image = Image.load("sample.tiff"))
{
// 为结果图像创建一个 TiffOptions 实例
TiffOptions outputSettings = new TiffOptions(TiffExpectedFormat.Default);
// 设置 BitsPerSample、压缩、光度模式和灰度调色板
outputSettings.setBitsPerSample(new int[] { 4 });
outputSettings.setCompression(TiffCompressions.Lzw);
outputSettings.setPhotometric(TiffPhotometrics.Palette);
outputSettings.setPalette(ColorPaletteHelper.create4BitGrayscale(false));
image.save("SampleTiff_out.tiff", outputSettings);
}
用于压缩图像的 Java API - 获得免费许可证
如果您想在没有评估限制的情况下试用 API,您可以获得免费的临时许可证。
结论
通常需要图像压缩以减小图像的大小。因此,本文介绍了如何使用 Java 以编程方式压缩 PNG、JPEG 和 TIFF 图像。此外,您可以使用 documentation 探索有关 Java 图像处理 API 的更多信息。
也可以看看
信息:Aspose 最近开发了一个新的在线网络应用程序,允许您将一组图像转换为视频。您可能还对另一种可用于通过从视频中提取声音 来压缩视频的服务感兴趣。