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, JPEG và TIFF bằng Java theo chương trình.
- API nén hình ảnh Java
- Nén hình ảnh PNG trong Java
- Nén hình ảnh JPEG trong Java
- Áp dụng tính năng nén cho hình ảnh TIFF trong Java
- Nhận giấy phép API miễn phí
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.
- Đầu tiên, tải hình ảnh PNG bằng lớp Hình ảnh.
- Tạo một thể hiện của lớp PngOptions.
- Đặt mức nén bằng phương pháp PngOptions.setCompressionLevel (int).
- Cuối cùng, lưu hình ảnh PNG đã nén bằng phương pháp Image.save (String, PngOptions).
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.
- Đầu tiên, tải hình ảnh JPEG bằng lớp Hình ảnh.
- Tạo một thể hiện của lớp JpegOptions.
- Đặt mức nén bằng phương pháp JpegOptions.setCompressionType (JpegCompressionMode).
- Cuối cùng, lưu ảnh JPEG đã nén bằng phương pháp Image.save (String, JpegOptions).
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.
- Đầu tiên, tải hình ảnh TIFF bằng lớp Hình ảnh.
- Tạo một thể hiện của lớp TiffOptions.
- Đặt mức nén bằng phương pháp TiffOptions.setCompression (TiffCompressions).
- Đặt các tùy chọn khác như bit trên mỗi mẫu, trắc quang, bảng màu, v.v.
- Cuối cùng, lưu hình ảnh TIFF đã nén bằng phương pháp Image.save (String, TiffOptions).
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.