![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| kol |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 1.9.2005 Репутация: нет Всего: 1 |
Всем привет!
Работаю с JPG... Картинки бывают разного размера и когда я им делаю зуминг, выпадает такой еррор: Exception in thread "Image Fetcher 0" java.lang.OutOfMemoryError: Java heap space Можно его как-то эту проблему решить для апплетов? Для приложения вроде можно(там с ключами запустить из консоли), но мне надо для апплета... Кто нибудь знает? |
|||
|
||||
| COVD |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 1 Всего: 43 |
Можно. Start->Settings->ControlPanel ->Java - это установки java. Но вы же не будете каждого пользователя вашего апплета просить, чтобы он у себя вручную ставил параметры для java-плагина. Лучше пересмотреть алгоритм обработки.
|
|||
|
||||
| kol |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 1.9.2005 Репутация: нет Всего: 1 |
Ну да, для приложения можно так сделать, а вот для апплета, я хочу найти какую нить автоматическую фишку...
А в алгоритме ниче особо и не придумаешь... Я ява методами увеличиваю или уменьшаю... scaledImg = originalImage.getScaledInstancewidth,height,Image.SCALE_DEFAULT); |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
Нельзя по соображениям безопасности, это определяется браузером и установленной JVM клиента. Можно попробовать вместо апплета использовать Java Web Start. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| kol |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 1.9.2005 Репутация: нет Всего: 1 |
Я правильно понимаю, что работа с картинками больше 1 мб невозможна в апплетах? Или все же есть какое-то решение именно для аплетов?
|
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
Не совсем, из апплета нельзя указать параметры JVM, но можно например получить максимальный объем памяти который JVM заберет себе System.out.println(Runtime.getRuntime().maxMemory()) (хотя этот метод не вседа хорошо работает)
по умолчанию JVM берет себе 64Мб. Можно при недостатке памяти сказать пользователю чтобы он изменил настройки JRE. P.S. Что ты такое делаешь с картинками что тебе не хватает 64Мб? -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 3 Всего: 151 |
Я думаю, это скорее определяется окружением. -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| kol |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 1.9.2005 Репутация: нет Всего: 1 |
Че-то я с масштабирование намудрил... Какие-то размеры нереальные получаются после него... Спасибо всем, в понедельник надо будет посмотреть что к чему...
LSD Да Фото альбом надо сделать... Должно хватать конечно 64 метра Всем приятных выходных |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
Декодированный jpeg будет занимать в памяти гораздо больше своего объема на диске. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| kol |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 1.9.2005 Репутация: нет Всего: 1 |
А как можно узнать размер(в мегабайтах) картинки в апплете?
|
|||
|
||||
| LSD |
|
||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
Размер будет зависеть от того в каком виде картинка представялется в памяти (например по заявлению Photoshop - jpeg размером 693Кб в памяти занимает 9Мб). Для больших картинок приблизительно можно постчитать так:
В результате я получил:
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||
|
|||||
| kol |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 1.9.2005 Репутация: нет Всего: 1 |
Я тоже в шопе посмотрел, что моя картинка 500 Kб занимает 16 метров памяти (фотка хорошего качества с высоким разрешением)... Видимо придется делать ограничения на размеры... Ето конечно не есть хорошо... Ща попробую посмотреть скоко будет в яве...
|
|||
|
||||
| kol |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 1.9.2005 Репутация: нет Всего: 1 |
LSD
Да уж, под 30 метров при зуминге на 10% ... А зачем столько раз сборщик вызываешь |
|||
|
||||
| LSD |
|
||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
Во первых
А во вторых, не знаю почему, но не все объекты удяляются сразу, некоторые только после нескольких вызовов. Добавлено @ 13:46
Может быть у тебя не нужные объекты не освобождатся? Есть объекты от которых уже можно избавиться, а ты еще держишь на них ссылку. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||
|
|||||
| kol |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 1.9.2005 Репутация: нет Всего: 1 |
Да вроде слежу, ниче лишнего вроде нет... Единственное, так ето картинку я держу в двух екземплярах - original i scaled... Буду сейчас от одной избавляться...
|
|||
|
||||
| kol |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 1.9.2005 Репутация: нет Всего: 1 |
Есть какие-то мысли по поводу того, как можно предсказать, что зууминг вызовет переполнение памяти и в соответствии с этим, заблокировать масштабирование?
|
|||
|
||||
| LSD |
|
||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
Да просто поймать его:
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||
|
|||||
| kol |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 1.9.2005 Репутация: нет Всего: 1 |
Че-то не ловится ... System.out.println("Scale error!"); не срабатывает почему-то. К тому же, я обнаружил, что переполнение происходит в тот момент, когда я делаю
"this.setIcon(new ImageIcon(scaledImage)); (это я с JLаbel)" а если его закоментировать, то переполнения нет...
|
||||
|
|||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 3 Всего: 151 |
Только, наверное, gc() -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| LSD |
|
||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
У меня все ловится, такой тестик:
Запускаю: java -Xmx10M Test, получаю: Catch OutOfMemoryError. Приведи весь код если можешь. Добавлено @ 17:21
Да, написание кода в IDE имеет свои преимущества -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||
|
|||||
| kol |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 1.9.2005 Репутация: нет Всего: 1 |
По нажатию кнопки, вызывается метод scale(0.1,true). На тестируемой фотографии, после очередного вызова, в консоли выпадает Exception in thread "Image Fetcher 1" java.lang.OutOfMemoryError: Java heap space и ничего больше...
|
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
Все ловится, я немного переделал твой код (чтобы его можно было запустить)
Если я запускаю java -Xmx10M ImageViewer, то получаю Catch : java.lang.OutOfMemoryError: Java heap space , т.е. банально не хватает памяти на загрузку картинки. А если запускаю java -Xmx11M ImageViewer то получаю Scale error!, нехватает памяти на масштабирование картинки. Ты просто не везде где нужно перехватываешь ошибку, к сожалению OutOfMemoryError, не содерит стека вызова и понять где именно возникла ошибка не просто. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| kol |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 1.9.2005 Репутация: нет Всего: 1 |
Ну да, у тебя все точно так же... Сейчас поставлю ловушки везде, где только можно
|
|||
|
||||
| kol |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 1.9.2005 Репутация: нет Всего: 1 |
Фантастика какая-то... Уже везде поставил ловушки, даже в таких местах, что аж смешно становится... Не ловит и все тут... Первый раз с такой проблемой столкнулся... Ладно, спасибо большое, за потраченное время, я сейчас буду другие части делать, а потом вернусь к масштабированию, а то так можно долго просидеть над ним.
Добавлено @ 14:02 LSD Ник у тебя прикольный ;) |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
Это не совсем то о чем ты подумал, глянь здесь, можешь и про свой ник написать -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 3 Всего: 151 |
Lonely
Liberal Learning Loving Latent + Software Developer Пошел банить себя за оффтоп -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| kol |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 1.9.2005 Репутация: нет Всего: 1 |
|
|||
|
||||
| ShurikA |
|
|||
![]() Зануда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1364 Регистрация: 29.10.2005 Где: Канада Репутация: 1 Всего: 3 |
Интересно, у меня всё работает:
|
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
А размер картинки какой и сколько памяти выделенно JVM? -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| ShurikA |
|
|||
![]() Зануда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1364 Регистрация: 29.10.2005 Где: Канада Репутация: 1 Всего: 3 |
Размеры самые разные, и очень большые тоже.
На тему памяти не знаю, ничего не менял. Как выставлем дефолт? |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
64Мб. Установить принудительно можно с помощью -Xmx20M. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| ShurikA |
|
|||
![]() Зануда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1364 Регистрация: 29.10.2005 Где: Канада Репутация: 1 Всего: 3 |
А надо ли? |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
Может понадобиться для целей тестирования, как ведет себя программа на X Мб памяти. Дело в том что настройки памяти выделяемой апплетам задаются пользователем. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| ShurikA |
|
|||
![]() Зануда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1364 Регистрация: 29.10.2005 Где: Канада Репутация: 1 Всего: 3 |
Тогда боюсь я что за этим не угонишься, так как каждуй может выставить всё что угодно. |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
Да нет, смысл в том чтобы сказать "минимальные системные требования", а как они их будут обеспечивать их дело. Но это уже все потом, при окночательной отладке, а пока этим можно не заморачиваться. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| ShurikA |
|
|||
![]() Зануда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1364 Регистрация: 29.10.2005 Где: Канада Репутация: 1 Всего: 3 |
Спасибо и на этом, но я так понимаю что всё ещё в переди |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Апплеты | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |