Форум программистов «Весельчак У»
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
Начало
Наши сайты
Галерея
Весельчак У
Наша Вики
Хранилище
Проекты
Правила
Правила форума
Правила русского языка
Помощь
Поиск
Календарь
Почта
Войти
Регистрация
Форум программистов «Весельчак У»
>
Программирование
>
Java
(Модератор:
Serg79
) > Тема:
j2me цвет пикселя
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: j2me цвет пикселя (Прочитано 15979 раз)
0 Пользователей и 3 Гостей смотрят эту тему.
s_vovik
Гость
j2me цвет пикселя
«
:
28-03-2005 10:22 »
Всем привет!
У меня возникла следующая проблема: есть Image он imutable, мне нужно изменить цвет каждого пикселя... Как известно Image - это чтото вроде массива каждая ячейка которого имеет вид 0хAARRGGBB. Так вот я вытянул этот массив данных при помощи Image.getRGB(...); в массив int[] rgbData; и попробовал собрать из него новую картинку Image.createRGBImage(...); Получилась такаяже картинка...
Теперь вопрос: при помощи каких битовых операций я могу изменить цвет в массиве rgbData? Или может кто то знает более простой способ изменения каждого пикселя картинки Image? :?
Заранее благодарен!
s_vovik.
Записан
s_vovik
Гость
Re: j2me цвет пикселя
«
Ответ #1 :
29-03-2005 10:12 »
Всем здрасте!
Я решил свою задачу - изменил цвет пикселей... однако мой способ оказался очень грамоздок... хотя для небольших картинок он работает довольно шустро... правда тестил я на Nokia 6230
Вот описание этого способа...
Делаем mutable Image. Image img = Image.createImage(1,1); - картинка состаящая из одного пикселя... затем делаем переменную Grafics g = img.getGrafics; Затем идет цикл в котором мы назначаем g цвет из нашего масива rgbData (см. выше)
g.setColor(rgbData
); потом запихиваем в переменные составляющие RGB; красный - g.getRedComponent (я пишу по памяти так что могу ошибится в арфографии), аналогично берем синий и зеленый... изменяем значения составляющих цвета как нам угодно и присваеываем цвет g.setColor(red,green,blue); а теперьпереписываем этот цвет в масив rgbData
= g.getColor; Какой кашмар!
Теперь очередной вопрос или прозьба - расскажите про битовые или байтовые операции! все это можно было сделать в Delphi в несколько строчек (я програмирую в основном на Delphi, в Jave я разбираюсь около месяца).
s_vovik.
Записан
Treww
Гость
Re: j2me цвет пикселя
«
Ответ #2 :
01-04-2005 08:04 »
Битовые операции - это просто.
Про байтовые слышал только в С++ LOWBYTE HIBYTЕ - реализовать можно, например, через лигическое И.
битовые операции вот:
~ - побитовое унарное отрицание (NOT)
& побитовое И (AND)
&= побитовое И (AND) с присваиванием
| побитовое ИЛИ (OR)
|= побитовое ИЛИ (OR) с присваиванием
^ побитовое исключающее ИЛИ (XOR)
^= побитовое исключающее ИЛИ (XOR) с присваиванием
>> сдвиг вправо, проще представлять как степень двойки 1<<3=8 тоже что и 2^3=8
>> = сдвиг вправо с присваиванием
>>> сдвиг вправо с заполнением нулями
>>>= сдвиг вправо с заполнением нулями с присваиванием
<< сдвиг влево
<<= сдвиг влево с присваиванием
они в любом учебниrе по JAVA есть.
int a=1;
a|=2; // a=3
a<<=1 // a=6
a>>=2 // a=1
«
Последнее редактирование: 01-04-2005 08:08 от Treww
»
Записан
s_vovik
Гость
Re: j2me цвет пикселя
«
Ответ #3 :
01-04-2005 09:56 »
Спасибо Treww!
Это то что я искал!
JBilder - обалденная IDE, освоение на нем Java просто сказка!
s_vovik.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
Re: j2me цвет пикселя
«
Ответ #4 :
02-04-2005 12:47 »
s_vovik , RGB имеет вид (DWORD) 0х00BBGGRR , нули абызательны
Treww ,
"сдвиг вправо, проще представлять как степень двойки 1<<3=8 тоже что и 2^3=8
" - неа, мне лично проще представить как бусы
))
Записан
>FAQ ПО ПРОГР.
>ССЫЛКИ ПО ПРОГР.
>Правила"Неотложки"
s_vovik
Гость
Re: j2me цвет пикселя
«
Ответ #5 :
04-04-2005 08:35 »
Алексей, а почему тогда эту цветовую модель назвали именно RGB а не BGR? Если хотите - попробуйте залить Canvas цветами Graphics g.setColor(0xFF0000), 0x00FF00, 0x0000FF - и вы поймете что сначела идет R - красный, потом G - зелнный и только затем B - голубой... У Image добавляется еще и альфа канал - A (он отвечает за прозрачьность FF - полная прозрачьность, 00 - полная не прозрачьность)... таким образом каждый элемент массива имеет вид 0xAARRGGBB. Если и это вас не убедит то тогда почитайте help по API Image (он есть в WTK или SDK эмулятора)...
Записан
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
Re: j2me цвет пикселя
«
Ответ #6 :
07-04-2005 13:23 »
пишу:
DWORD rrr=RGB(255,0,0);
после этого:
rrr==0x000000ff
Записан
>FAQ ПО ПРОГР.
>ССЫЛКИ ПО ПРОГР.
>Правила"Неотложки"
Джон
просто
Администратор
Offline
Пол:
Re: j2me цвет пикселя
«
Ответ #7 :
07-04-2005 14:37 »
Лёшка, не безобразничай. Человек в Java работает. Ейные функции может сами конвертят для GDI.
s_vovik, всё правильно, просто GDI объекты используют тип COLORREF, в котором действительно синий и красный байт меняются местами. Что собсно и делает макрос RGB(), те преводит RGB(0хRR, 0xGG, 0xBB) в
0х00BBGGRR.
Записан
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
s_vovik
Гость
Re: j2me цвет пикселя
«
Ответ #8 :
08-04-2005 10:05 »
Джон, спасибо за обьяснение!
Записан
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
Re: j2me цвет пикселя
«
Ответ #9 :
09-04-2005 11:06 »
Джон,
Записан
>FAQ ПО ПРОГР.
>ССЫЛКИ ПО ПРОГР.
>Правила"Неотложки"
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Форум программистов «Весельчак У»
>
Программирование
>
Java
(Модератор:
Serg79
) > Тема:
j2me цвет пикселя
Загружается...