Android: Out of Memory

0

Witam. Mam problem z pamięcią podczas robienia swojej aplikacji. Ma to być edytor zdjęć, także pracuję z dużymi bitmapami wziętymi z aparatu fotograficznego. Niestety próba zrobienia czegokolwiek z dużą bitmapą skutkuje błędem Out of Memory.

Na żadnym forum niestety nie znalazłem rozwiązania, a przecież istnieją aplikacje które pracują z takimi grafikami a chyba nie biorą pamięci z sufitu. Zatem jak to jest możliwe że coś moze działać w jednym programie a w innym nie?

Póki co pracuję na miniaturkach gdzie widoczne są efekty retuszu, ale na koniec pracy użytkownik będzie chciał sobie to zdjęcie zapisać, i tutaj zonk bo nie widzę żadnej możliwości aby to zrealizować.

0

Jak duże są to zdjęcia i na jakim sprzęcie (chodzi o urządzenie z Androidem) pracujesz?

0

Urządzenie to emulator z systemem 2.1 ale ze zdjęciami już o wielkości 800x600 mam problem a przecież urządzenia z Androidem mają aparaty nawet o wielkości 5,6 Mpx który chcąc nie chcąc muszę zrzucić do tablicy z wartościami ARGB.

0

A nie możesz w emulatorze po prostu przypisać więcej pamięci RAM?

0

Mogę ale kiedyś chcę wyprowadzić program z emulatora, żeby żył na telefonach a tam już nie zmienię nikomu pamięci ;)

Jeszcze taka jedna sprawa, otóż bitmapy które wyświetlam mają dziwnie niską jakość. Z tego co wiem chodzi o dithering, który powinien przynajmniej moim zdaniem być stosowany tylko przy wyświetlaniu. Jednak po konwersji bitmapy do RGB przy użyciu BitmapFactory, traci ona jakość! Nawet po zapisaniu jej na kartę pamięci a później odtworzeniu w Photoshopie dalej widzę takie ziarno jak na wyświetlaczu, podczas gdy oryginalne zdjęcie nie miało czegoś takiego. Przy konwersji używam ARGB_8888 i nic później z tymi pikselami nie robię...

0

Znajomy który czymś podobnym się zajmował twierdził, że część telefonów radzi sobie z dużymi zdjęciami poprzez wczytywanie ich kawałek po kawałku, a nie całych naraz.

0

Tak, myślałem o tym aby stosować filtry do fragmentów obrazu a później w jakiś sposób strumieniowo połączyć go w jeden duży. Ale problem jest taki, że niektóre filtry jakie stworzyłem wymagają aproksymacji, czyli wartość jednej pikseli zależy od innych czyli poniekąd zazębia się. Gdybym użył tej metody to zdjęcie miałoby widoczne łączenia.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0