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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Очистить Image, чтобы прозрачным было 
:(
    Опции темы
Jack270
  Дата 27.4.2011, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Привет!

Такая проблема: есть Image, в нём что-нибудь нарисовано, нужно его стереть, но заполнить не каким-либо цветом, а прозрачными пикселями. Это возможно?

Заранее спасибо!

Это сообщение отредактировал(а) Jack270 - 27.4.2011, 10:48
PM MAIL   Вверх
PiyodaiSiyo
Дата 28.4.2011, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



вытаскиваешь массив из объекта Image и каждый пиксел требуемой области пропускаешь через маску , например int targetPixel=0xAAXXXXXX &  0x00FFFFFF , ну или короче 0xAAXXXXXX&=0x00FFFFFF и обратно на место вставить. А проверку на поддерживается ли прозрачность, способы создания объекта  Image  можно найти в документациях
PM MAIL   Вверх
Jack270
Дата 29.4.2011, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



В этом способе проблема во "встевке на место". Не Image, не Graphics не дают такой возможности :(
PM MAIL   Вверх
oxigen
Дата 29.4.2011, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 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)

PM MAIL   Вверх
Jack270
Дата 29.4.2011, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Да, внимательно смотрел smile И увидел вот что: Creates an immutable image from a sequence of ARGB values, specified as 0xAARRGGBB.
Вот если бы не это "immutable", было бы всё хорошо, а так :(
PM MAIL   Вверх
PiyodaiSiyo
Дата 30.4.2011, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



ну и что что immutable. Запусти поток типа while(b){Thread.sleep(100);....;repaint();} а в свой paint() вставь 
g.drawImage(image,...,...,...); а операции по изменению Image проводи в другом  методе просто присвоив предыдущему image нулл и тут же создавая такой же , но с изменениями в пикселах и этот метод должен выполняться не прерываясь пока не закончится,т.е synchronized. Вес класс насследуй от Canvas
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

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

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


 




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


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

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