Модераторы: javastic, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с картинками 
:(
    Опции темы
nerezus
Дата 3.1.2007, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: нет
Всего: 43



Нужно порезать изображение: сделать из него массив изображений. Image.
Т.е. полоска 800х10 - надо ее порезать на 100 коротких 8х10.... Как?

И где вообще документацию добыть можно?  smile 


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
W0LF
Дата 3.1.2007, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


alexander lonsky
***


Профиль
Группа: Участник
Сообщений: 1164
Регистрация: 9.2.2006
Где: Ukraine.Dnepropet rovsk

Репутация: 19
Всего: 20



Загружаешь полностью картинку
Код

Image img = Image.createImage("/myImage.png");


1. Если не получается, то смотри сюда - click me
2. Если загружается, то все ок.
Код

Vector images = new Vector();//если у тя все время статический, то лучше использовать array
for (int i = 0; i < 100; i++){
    Image tmpImage = Image.createImage(img, i * 8, 0, 8, 10, Sprite.TRANS_NONE);
    images.add(splinterImage);
}


Вроде все smile

Добавлено @ 17:01 
Только это можно сделать только во втором МИДП, если надо для первого - пиши smile

Добавлено @ 17:02 
И еще, в конце надо сделать
Код

img = null;
System.gc();



--------------------
iOS developer
PM MAIL WWW Skype GTalk   Вверх
Vladimir35
Дата 3.1.2007, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 1.8.2006

Репутация: 3
Всего: 3



 - Статически или динамически? 
 - Причем тут j2me? (Загрузить такое большое изображение - практически не реально)

Статья по теме:
http://www.mobile-mir.com/en/schema-howto.php

Это сообщение отредактировал(а) Vladimir35 - 3.1.2007, 17:05
PM MAIL WWW   Вверх
nerezus
Дата 3.1.2007, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: нет
Всего: 43



Цитата

И еще, в конце надо сделать
 Т.е. при завершении мидлета? или метода? я это в static поля класса хочу пихануть, т.к. планирую использовать во всем мидлете.

Цитата

Причем тут j2me?
 Хочу текст выводить таким способом. Своим шрифтом.

Цитата

Загрузить такое большое изображение - практически не реально
 Хм... пара килобайт... Оно очень широкое, но очень низкое.

Цитата

если надо для первого - пиши
 Хотелось бы, так как еще не все телефоны второй держат... эмулятор от нокии(7210) не держит...

И еще: в картинке первоначальной 2 цвета: прозрачный и черный.
Хотелось бы прозрачный оставить прозрачным, а черный - менять на любой.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
W0LF
Дата 3.1.2007, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


alexander lonsky
***


Профиль
Группа: Участник
Сообщений: 1164
Регистрация: 9.2.2006
Где: Ukraine.Dnepropet rovsk

Репутация: 19
Всего: 20



Цитата

 Т.е. при завершении мидлета? или метода? я это в static поля класса хочу пихануть, т.к. планирую использовать во всем мидлете.

По завершению цикла. Просто зачем тебе хранить ссылку на общую картинку smile
Цитата

Хм... пара килобайт... Оно очень широкое, но очень низкое.

Я даже на гнусмасах так резал картинку 1740х60
Цитата

Хотелось бы прозрачный оставить прозрачным, а черный - менять на любой

Останется все как и есть, а если нужно черный поменять, то javastic недавно статью здесь выложил, как изменить в картинке цвет на другой.
Сейчас напишу тебе как в первом МИДПе делать


--------------------
iOS developer
PM MAIL WWW Skype GTalk   Вверх
Vladimir35
Дата 3.1.2007, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 1.8.2006

Репутация: 3
Всего: 3



Цитата(nerezus @ 3.1.2007,  17:33)
Хочу текст выводить таким способом. Своим шрифтом.

1. Постарайтесь, чтобы изображение было квадратным - избежите многих проблем.
2. Используйте одно большое изображение вместо большого количества маленьких.
PM MAIL WWW   Вверх
W0LF
Дата 3.1.2007, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


alexander lonsky
***


Профиль
Группа: Участник
Сообщений: 1164
Регистрация: 9.2.2006
Где: Ukraine.Dnepropet rovsk

Репутация: 19
Всего: 20



Цитата

2. Используйте одно большое изображение вместо большого количества маленьких.

Да, желательно использовать одну большую картинку. Хотя, если ресурсы не жмут, то можно и так smile

для первого МИДП
пользуйся методами 
Код

clipRect(int x, int y, int width, int height) 

или
Код

setClip(int x, int y, int width, int height) 

Там ничего сложного нет. Просто выделяешь область и рисуешь в нее со смещением свою картинку. Все, что не в области - отрисовываться не будет





--------------------
iOS developer
PM MAIL WWW Skype GTalk   Вверх
nerezus
Дата 3.1.2007, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: нет
Всего: 43



Цитата

Просто выделяешь область и рисуешь в нее со смещением свою картинку.
 Эм.... для каждого кусочка рисовать большую картинку?


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
W0LF
Дата 4.1.2007, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


alexander lonsky
***


Профиль
Группа: Участник
Сообщений: 1164
Регистрация: 9.2.2006
Где: Ukraine.Dnepropet rovsk

Репутация: 19
Всего: 20



Выделяешь свой кусочек и на него сверху рисуешь полную картинку со смещением(ну если тебе нужен второй кусок, то рисуешь с координатой x=-8)
Код

//твоя область, куда рисовать будешь
g.clipRect(30, 40, 8, 10);
//отрисовываем вторую картинку в выделенную область
g.drawImage(img, -8, 0, TOP | LEFT); 



--------------------
iOS developer
PM MAIL WWW Skype GTalk   Вверх
javastic
Дата 4.1.2007, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1214
Регистрация: 18.3.2005
Где: St.Petersburg

Репутация: 19
Всего: 27



В любом случае всё зависит от кол-ва свободной heap памяти. Хоть реж картинку, хоть закружай целиком, а потом режь. Я бы нарезал картинку заранее на маленькие кусочки, а потом бы подгружал.


--------------------
01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011
scjp, mcp 
PM MAIL WWW ICQ   Вверх
W0LF
Дата 4.1.2007, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


alexander lonsky
***


Профиль
Группа: Участник
Сообщений: 1164
Регистрация: 9.2.2006
Где: Ukraine.Dnepropet rovsk

Репутация: 19
Всего: 20



Цитата

Я бы нарезал картинку заранее на маленькие кусочки, а потом бы подгружал.

Так нарезанная картинка будет больше памяти в джаре занимать 


--------------------
iOS developer
PM MAIL WWW Skype GTalk   Вверх
javastic
Дата 4.1.2007, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1214
Регистрация: 18.3.2005
Где: St.Petersburg

Репутация: 19
Всего: 27



Только на размер имен файлов, а это мелочи. ;)


--------------------
01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011
scjp, mcp 
PM MAIL WWW ICQ   Вверх
nerezus
Дата 4.1.2007, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: нет
Всего: 43



Ну я решил, что тут только время подгрузки при нарезке увеличивается, поэтому я даже парсить решил файл с размерами прямо при загрузке. А потом просто обнулю ненужные переменные и запущу GC.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
nerezus
Дата 5.1.2007, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: нет
Всего: 43



4 секунды!!!
Это за такое время на моторолке режется картинка в 2 килобайта!
Буду искать другой способ...


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
kapi
Дата 16.3.2007, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 16.8.2006

Репутация: 1
Всего: 1



Не стоит ничего резать в любом случае. Я так понял тебе для шрифтов нада?.. Если телефон потянет такую картинку, то делай примерно так : 
Код

   for (int i = 0; i < strl; i++) {
            idx = gMap(bytes[i]);                        
            g.setClip(ax, y, FONT_W, FONT_H); /клип для одного символа
            if (needCR == 1){
                g.clipRect(10,0,canvasW-20,canvasH);
            }else {
                if(needCR == 2)
                    g.clipRect(65,13,108,25);
            }
            g.drawImage(Resource.images[Resource.f_FONT_Green], ax - (idx) * FONT_W, y, Graphics.TOP | Graphics.LEFT);
            ax += letterW[idx] + 1;
        }


тоесть рисушь всю картинку и клипиш нужный символ. Лучше все это как то инкапсулировать.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

  • Прежде чем задать вопрос прочтите это!
  • Литература по Java находится здесь.
  • Литературу по Java обсуждаем здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда

  • FAQ раздела лежит здесь!
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java ME (J2ME) | Следующая тема »


 




[ Время генерации скрипта: 0.0682 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.