Chcę załadować duże obrazy (18000 x 18000) do mojej aplikacji. Jeśli używam BufferedImage
z typem int_rgb
, potrzebuję około 1235 MB pamięci sterty do załadowania. Jest to bardzo duża ilość pamięci, a użytkownicy końcowi prawdopodobnie będą mieli mniej pamięci RAM (1 GB lub mniej).Jak załadować olbrzymi obraz do Java za pośrednictwem BufferedImage?
Na moim komputerze deweloperskim, po załadowaniu obrazu z MyEclipse IDE, wyrzuca on brakującą pamięć Exception
. Kiedy pakuję kod do pliku wykonywalnego jar i uruchamiam go na komputerze poza Eclipse, nadal generuje wyjątek.
Jak załadować tak duży obraz do mojej aplikacji przy użyciu buforowanego obrazu bez użycia 1235 MB pamięci? Czy jest jakaś sztuczka, np. Dzielenie obrazu na mniejsze części, takie jak segmentacja obrazu?
Znalazłem this thread on SO, ale nie było to dla mnie przydatne; Chcę załadować obraz do BufferedImage
, a następnie narysować go na Panel
przy użyciu klasy Graphics
.
dziękuję za cenne uwagi i spróbuję tego i dam znać. – Mihir
Z powodzeniem wdrożę Twoje rozwiązanie i zadziałało. Proszę, pomóż mi w tej sprawie, http://stackoverflow.com/questions/15438506/how-do-i-convert-an-enormous-tiff-image-to-png-jpeg-without-out-of-memory -błąd – Mihir