在各种情况下,图像会被压缩以减小文件大小。为此,不同的在线或离线应用程序允许您应用图像压缩。但是,在某些情况下,您可能需要在 Web 或桌面应用程序中实现图像压缩功能。对于这种情况,本文介绍了如何使用 Java 以编程方式压缩包括 PNGJPEGTIFF 在内的图像。

最佳 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 图像的步骤。

以下代码示例展示了如何使用 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 图像的步骤。

以下代码示例展示了如何使用 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 压缩的步骤。

以下代码示例显示了如何使用 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 最近开发了一个新的在线网络应用程序,允许您将一组图像转换为视频。您可能还对另一种可用于通过从视频中提取声音 来压缩视频的服务感兴趣。