Powiększanie i ładowanie bardzo dużego pliku TIFF

Mam bardzo dużą mapę hi-res, której chcę użyć w aplikacji (imageize ma około 80 mb).

Chciałbym wiedzieć, co następuje:

Jak mogę załadować ten obraz w najlepszy możliwy sposób? Wiem, że załadowanie obrazu zajmie kilka sekund (co jest w porządku), ale chciałbym powiadomić użytkownika o postępie. Chciałbym użyć określonego trybu i pokazać to w jakiś sposóbJProgressBar do użytkownika. Powinno to odzwierciedlać liczbę załadowanych bajtów lub coś takiego. Czy istnieje jakaś metoda ładowania obrazu, która może zapewnić taką funkcjonalność (npImageIO.read())?Ponieważ mapa ma bardzo wysoką rozdzielczość, chciałbym zaoferować użytkownikowi przewijanie, aby powiększać i pomniejszać. Jak mogę to zrobić najlepiej? Wiem na pewno, że przeskalowanie aBufferedImage standardowy sposób wymagałby BARDZO długiego czasu na tak duży plik. Czy jest jakiś skuteczny sposób na to?

Dziękuję za Twój wkład!

Z poważaniem,
Héctor van den Boorn

p.s. Obraz zostanie narysowany na płótnie JPanel.

Cześć Andrew, dziękuję bardzo za twoją pomoc; wszystko działało idealnie i ładuje się szybko. Bez twojej wiedzy i wyjaśnień nadal pracowałbym nad tym, abyś zdobył nagrodę pieniężną i kwadrat.

To, co zrobiłem, było następujące; za pomocą imagemagick stworzyłem wiele obrazów o różnej rozdzielczości i na początku wykonywania ładuję tylko najmniejsze res. obraz. Reszta jest ładowana w osobnych wątkach, więc wykonanie nie jest zablokowane. Korzystając z podanych przeze mnie informacji, używam odpowiednich obrazów podczas powiększania lub pomniejszania. Trochę sceptycznie podchodzę do używania kafelków, ponieważ muszę narysować własne obrazy na wierzchu mapy i nie mogłem znaleźć funkcji malowania w zewnętrznym słoiku, który kazałem mi użyć, więc skończyło się na użyciu czegoś prostego; podczas powiększania lub przesuwania tryb przeskalowania jest ustawiony na szybki, a gdy nie powiększasz ani nie przesuwasz, przeskalowanie jest ustawiane tak, aby wygładzać obrazy idealne dla pikseli (jak sugerowałeś), ale okazuje się, że jest wystarczająco szybkie i Potrzebuję płytek (chociaż widzę, że przy jeszcze większych obrazach byłoby to konieczne i rozumiem informacje, które mi podałeś).

Jeszcze raz dziękuję i wszystko działa doskonale :)

questionAnswers(1)

yourAnswerToTheQuestion