![]() |
|
Модераторы: javastic, AntonSaburov |
![]()
|
|
| Jack270 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 27.4.2011 Репутация: нет Всего: нет |
Привет!
Такая проблема: есть Image, в нём что-нибудь нарисовано, нужно его стереть, но заполнить не каким-либо цветом, а прозрачными пикселями. Это возможно? Заранее спасибо! Это сообщение отредактировал(а) Jack270 - 27.4.2011, 10:48 |
|||
|
||||
| PiyodaiSiyo |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 31.12.2009 Репутация: 1 Всего: 2 |
вытаскиваешь массив из объекта Image и каждый пиксел требуемой области пропускаешь через маску , например int targetPixel=0xAAXXXXXX & 0x00FFFFFF , ну или короче 0xAAXXXXXX&=0x00FFFFFF и обратно на место вставить. А проверку на поддерживается ли прозрачность, способы создания объекта Image можно найти в документациях
|
|||
|
||||
| Jack270 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 27.4.2011 Репутация: нет Всего: нет |
В этом способе проблема во "встевке на место". Не Image, не Graphics не дают такой возможности :(
|
|||
|
||||
| oxigen |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 12.4.2010 Репутация: 4 Всего: 4 |
Да как же не дают?
На Image внимательно смотрел? getRGB(int[] rgbData, int offset, int scanlength, int x, int y, int width, int height) Получаем массив пикселей. Меяем им первый байт и создаем новый Image из получившегося массива с помощью createRGBImage(int[] rgb, int width, int height, boolean processAlpha) |
|||
|
||||
| Jack270 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 27.4.2011 Репутация: нет Всего: нет |
Да, внимательно смотрел
Вот если бы не это "immutable", было бы всё хорошо, а так :( |
|||
|
||||
| PiyodaiSiyo |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 31.12.2009 Репутация: 1 Всего: 2 |
ну и что что immutable. Запусти поток типа while(b){Thread.sleep(100);....;repaint();} а в свой paint() вставь
g.drawImage(image,...,...,...); а операции по изменению Image проводи в другом методе просто присвоив предыдущему image нулл и тут же создавая такой же , но с изменениями в пикселах и этот метод должен выполняться не прерываясь пока не закончится,т.е synchronized. Вес класс насследуй от Canvas |
|||
|
||||
![]()
|
FAQ раздела лежит здесь! |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java ME (J2ME) | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |