在各種情況下,圖像被壓縮以減小其文件大小。為此,不同的在線或離線應用程序允許您應用圖像壓縮。但是,在某些情況下,您可能需要在 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 圖像。此外,您可以使用 文檔 探索有關 Java 圖像處理 API 的更多信息。

也可以看看

信息:Aspose 最近開發了一個新的在線網絡應用程序,允許您將一組圖像轉換為視頻。您可能還對另一項服務感興趣,該服務可用於通過 從視頻中提取聲音 來壓縮視頻。