Tôi muốn tải hình ảnh lớn (18000 x 18000) vào ứng dụng của mình. Nếu tôi sử dụng BufferedImage
với loại int_rgb
, tôi cần khoảng 1235mb bộ nhớ heap để tải. Đây là lượng bộ nhớ rất cao và người dùng cuối có thể sẽ có ít ram hơn (1GB hoặc ít hơn).Làm cách nào để tải hình ảnh khổng lồ đến Java qua BufferedImage?
Trên PC phát triển của tôi, khi tôi tải hình ảnh từ MyEclipse IDE, nó ném ra khỏi bộ nhớ Exception
. Khi tôi đóng gói mã của tôi vào một jar thực thi và chạy nó trên máy tính của tôi bên ngoài Eclipse, nó vẫn ném một ngoại lệ.
Làm cách nào để tải hình ảnh lớn như vậy vào ứng dụng của tôi bằng hình ảnh đệm mà không sử dụng 1235MB bộ nhớ? Có một thủ thuật nào, như tách hình ảnh thành các phần nhỏ hơn như phân đoạn hình ảnh không?
Tôi tìm thấy this thread on SO, nhưng nó không hữu ích cho tôi; Tôi muốn tải hình ảnh đó vào BufferedImage
và sau đó vẽ hình ảnh trên Panel
bằng cách sử dụng lớp Graphics
.
cảm ơn những ý kiến quý giá của bạn và tôi sẽ thử điều này và cho bạn biết. – Mihir
tôi triển khai thành công giải pháp của bạn và nó đã hoạt động. hãy giúp tôi về vấn đề này cũng như http://stackoverflow.com/questions/15438506/how-do-i-convert-an-enormous-tiff-image-to-png-jpeg-without-out-of-memory -lỗi – Mihir