Xin chào Tôi muốn biết nếu có cách nào trong Java để giảm kích thước của một hình ảnh (sử dụng bất kỳ loại nén nào) được tải dưới dạng BufferedImage và sẽ được lưu dưới dạng PNG.cách nén hình ảnh PNG bằng Java
Có thể một số loại png imagewriteparam? Tôi đã không tìm thấy bất cứ điều gì hữu ích để im bị mắc kẹt.
heres một mẫu như thế nào hình ảnh được tải và lưu
public static BufferedImage load(String imageUrl) {
Image image = new ImageIcon(imageUrl).getImage();
bufferedImage = new BufferedImage(image.getWidth(null),
image.getHeight(null),
BufferedImage.TYPE_INT_ARGB);
Graphics2D g2D = bufferedImage.createGraphics();
g2D.drawImage(image, 0, 0, null);
return bufferedImage;
}
public static void storeImageAsPng(BufferedImage image, String imageUrl) throws IOException {
ImageIO.write(image, "png", new File(imageUrl));
}
Có "loại nén nào" bao gồm nén mất dữ liệu không? Bởi vì sau đó lưu trữ hình ảnh dưới định dạng JPEG có thể tiết kiệm rất nhiều không gian. –
PNG là định dạng nén không mất (miễn là hình ảnh nguồn của bạn không sử dụng nhiều hơn 8 bit cho mỗi kênh: nếu bạn chuyển đổi, hình ảnh RGB 48 bit thành PNG, PNG trở nên mất dữ liệu), do đó bạn không thể đạt được nhiều. Tuy nhiên, có rất nhiều công cụ tạo PNG nhỏ hơn nhiều so với bình thường và chúng đặc biệt hữu ích nếu bạn cần PNG của mình cho các thiết bị có bộ nhớ: PNGOUT là một công cụ và được lập trình bởi một trong những lập trình viên giỏi nhất bao giờ: http: //advsys.net/ken/utils.htm#pngout – SyntaxT3rr0r
ngay, như Joachim hỏi, không nén mất dữ liệu, chỉ giảm kích thước của tệp hình ảnh như được sử dụng bởi zip và do đó, không nên có các công cụ bên ngoài có liên quan như PNGOUT, vì vậy nó có thể là một số loại thư viện hỗ trợ và ImageWriteParam cho PNG như JPEGImageWriteParam, xem xmlgraphics-commons 1.3.1 atm. Xin lỗi nếu im nhận được khó hiểu trong một số phần im vẫn còn là một người mới, chỉ thoguht câu trả lời có thể giúp tôi ra hoặc truyền cảm hứng cho người khác với một vấn đề tương tự. Cảm ơn bạn đã đề xuất cho đến thời điểm này. – ubernoob