Trong các tình huống khác nhau, hình ảnh được nén để giảm kích thước tệp của chúng. Đối với điều này, các ứng dụng trực tuyến hoặc ngoại tuyến khác nhau cho phép bạn áp dụng tính năng nén hình ảnh. Tuy nhiên, trong một số trường hợp nhất định, bạn có thể cần triển khai tính năng nén hình ảnh từ bên trong các ứng dụng web hoặc máy tính để bàn của mình. Đối với những trường hợp như vậy, bài viết này trình bày cách nén hình ảnh bao gồm PNG, JPEGTIFF bằng Java theo chương trình.

API nén hình ảnh Java tốt nhất - Tải xuống miễn phí

Aspose.Imaging for Java là một API mạnh mẽ cho phép bạn thực hiện các hoạt động xử lý hình ảnh khác nhau từ bên trong các ứng dụng Java. Hơn nữa, nó cho phép bạn nén hình ảnh PNG, JPEG và TIFF một cách liền mạch. Để sử dụng API, bạn có thể tải xuống JAR của nó hoặc cài đặt nó trong các ứng dụng dựa trên Maven của bạn.

<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>

Nén hình ảnh PNG trong Java

Định dạng PNG hỗ trợ nén không mất dữ liệu có nghĩa là nén hình ảnh PNG sẽ làm giảm kích thước tệp nhưng không giảm chất lượng. Đối với hình ảnh PNG, Aspose.Imaging for Java cho phép bạn đặt mức nén từ 0 đến 9 trong đó 0 và 9 lần lượt là mức nén tối thiểu và tối đa. Sau đây là các bước để nén ảnh PNG bằng Java.

Mẫu mã sau đây cho thấy cách nén hình ảnh PNG bằng Java.

// Tải hình ảnh từ tệp (hoặc luồng)
Image image = Image.load("aspose_logo.png");

// Lặp lại phạm vi mức độ nén có thể
for (int i = 0; i <= 9; i++) {
	
  // Tạo một phiên bản PngOptions cho mỗi PNG kết quả
	PngOptions options = new PngOptions();
	
  // Đặt mức nén
	options.setCompressionLevel(i);
	
  // Lưu kết quả trên đĩa (hoặc luồng)
	image.save("CompressingFiles_out" + i + ".png", options);
}

Nén ảnh JPEG bằng Java

Để nén ảnh JPEG, Aspose.Imaging for Java cung cấp các kiểu nén sau.

  • Đường cơ sở
  • Cấp tiến
  • Không mất mát
  • JpegLs

Sau đây là các bước để áp dụng một trong các kiểu nén nói trên cho ảnh JPEG sử dụng Java.

Mẫu mã sau đây cho thấy cách nén ảnh JPEG bằng Java.

// Tải hình ảnh
Image original = Image.load("Input.jpeg");
try
{
    JpegOptions jpegOptions = new JpegOptions()
	  {{
        // Áp dụng nén
		    setCompressionType(JpegCompressionMode.Progressive);
	  }};
  
  // Lưu hình ảnh nén
  original.save("result.jpg", jpegOptions);
}
finally
{
  original.dispose();
}

Nén hình ảnh TIFF bằng Java

Aspose.Imaging for Java cung cấp nhiều kiểu nén TIFF bao gồm LZW, Packbits, CCIT Fax 3 & 4, v.v. Do đó, bạn có thể chọn kiểu nén phù hợp nhất với yêu cầu của mình. Sau đây là các bước để thực hiện nén TIFF bằng Java.

Mẫu mã sau đây cho thấy cách nén ảnh TIFF bằng Java.

// Tải hình ảnh qua vị trí đường dẫn tệp hoặc luồng
try (Image image = Image.load("sample.tiff"))
{
	// Tạo một phiên bản của TiffOptions cho hình ảnh kết quả
	TiffOptions outputSettings = new TiffOptions(TiffExpectedFormat.Default);

	// Đặt BitsPerSample, Compression, Photometric mode và graycale Palette
	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 để nén hình ảnh - Nhận giấy phép miễn phí

Trong trường hợp bạn muốn dùng thử API mà không có giới hạn đánh giá, bạn có thể nhận giấy phép tạm thời miễn phí.

Sự kết luận

Nén hình ảnh thường được yêu cầu để giảm kích thước của hình ảnh. Do đó, bài viết này đề cập đến cách nén hình ảnh PNG, JPEG và TIFF theo lập trình bằng Java. Hơn nữa, bạn có thể khám phá thêm về API xử lý ảnh Java bằng tài liệu.

Xem thêm

Thông tin: Aspose gần đây đã phát triển một ứng dụng web trực tuyến mới cho phép bạn chuyển một tập hợp hình ảnh thành video. Bạn cũng có thể quan tâm đến một dịch vụ khác có thể được sử dụng để nén video bằng cách trích xuất âm thanh từ video.