Có thể gợi ý rằng BufferedImage
là tùy chọn tốt nhất để xử lý hình ảnh trong Java. Trong khi tiện lợi, khi đọc những hình ảnh khổng lồ, nó thường kết thúc bằng:Cách đọc hình ảnh từ luồng?
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
Tăng kích thước VM không phải là giải pháp vì một số tệp đầu vào thực sự rất lớn trong trường hợp của tôi.
Vì vậy, tôi đang tìm cách (các) cách một hình ảnh có thể được đọc dần dần, từ một luồng.
Tôi nghi ngờ rằng ImageIO.createImageInputStream()
từ ImageIO
có thể phù hợp với hóa đơn, nhưng tôi không biết cách sử dụng nó để đọc số chunks dần dần. Ngoài ra, có các lớp học PNGMetadata
& PNGImageReader
có sẵn trên số rt.jar
của JDK có vẻ hữu ích, nhưng tôi không tìm thấy ví dụ đơn giản về cách sử dụng của chúng.
Đây có phải là cách để đi, hoặc có lựa chọn thay thế tốt hơn?
Hãy chú ý để lại nhận xét nếu bạn downvote hoặc bỏ phiếu để đóng. – blackSmith
Không cần, chú giải công cụ cho mũi tên xuống đã cho bạn biết mọi thứ bạn cần biết – Clive
@Clive: cảm ơn mẹo. Tuy nhiên nếu tôi đã có thể biết làm thế nào để truy cập vào tiêu đề bằng cách sử dụng java, tôi sẽ không có đăng nó. Để rõ ràng tôi có thể chỉnh sửa câu hỏi. Cuối cùng tôi không thể chấp nhận rằng nó 'không hữu ích' vì SO có quá nhiều 'java.lang.OutOfMemoryError: khoảng trống Java' khi sử dụng các câu hỏi' BufferedImage'. – blackSmith