Tôi đang viết một ứng dụng web cho phép người dùng tải lên hình ảnh ở nhiều định dạng (ví dụ: png, jpg, bmp). Sau khi hình ảnh được tải lên, hệ thống sẽ chuyển đổi nó thành "png" và mở rộng nó thành độ phân giải được xác định trước.Java chuyển đổi định dạng hình ảnh có dấu chân bộ nhớ thấp
Để chuyển đổi các hình ảnh tôi sử dụng phương pháp tiện dụng:
javax.imageio.ImageIO.write(im, type, baos);
Đây là nơi mà vấn đề bắt đầu. Đối số đầu tiên của Image javax.imageio.ImageIO.write là RenderedImage. Tài liệu Java nói rằng việc thực hiện chỉ được biết là BufferedImage.
Tôi cố gắng tìm cách chuyển đổi java.awt.Image thành BufferedImage, nhưng dường như không thể. Tuy nhiên, có thể draw an image on a BufferedImage.
Vấn đề là tạo ra một BufferedImage mới mỗi lần là rất tốn kém bộ nhớ. Tôi có thể bắt đầu tạo một nhóm BufferedImage nhưng tôi đang tìm kiếm các ý tưởng thông minh/tin tức.
Không, tôi đã không kiểm tra chúng. Bạn có đề nghị nào cho vấn đề này không. Ý tôi là, chuyển đổi hình ảnh với dung lượng bộ nhớ thấp –
Không, xin lỗi, tôi đã không sử dụng bất kỳ thứ gì trong số chúng nên tôi không thể đề xuất bất cứ điều gì. Bạn có thể có thể tìm thấy một số kết quả trên Google hoặc bất cứ nơi nào, nhưng đặt cược tốt nhất của bạn là chỉ cần thử chúng mình. –