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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Полупрозрачный пиксель, Не могу нарисовать прозрачный пиксель 
:(
    Опции темы
Взюх
Дата 9.8.2007, 10:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Как задать рисуемому пикселю белый цвет и где-то 50% прозрачности? 
PM MAIL   Вверх
SatanClaus
Дата 9.8.2007, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Посмотри пост "Затемнение изображения". Там много полезного на эту тему валяется...  smile 
PM MAIL   Вверх
Взюх
Дата 9.8.2007, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



SatanClaus
Перечитал ……цать раз, я так понял что  первые два числа после 0х..  и задают уровень прозрачности пикселя, но у меня не получается,  заполненный прямоугольник, который я рисую  все равно не прозрачный. 
PM MAIL   Вверх
GhostMasterNet
Дата 10.8.2007, 10:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Илья
*


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

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



Должно работать. Может быть ты ошибся при установке нужных пикселей?

попробуй так:

Код


ARGB_image[ i ] = ARGB_image[ i ] & (0x00FFFFFF | (transValue << 24));



где  0 < transValue < 255,  ARGB_image - RGB-массив твоей картинки


Методами fillXXX, drawXXX ( fillRect, например) рисовать прозрачные пиксели не получается.
Но можно использовать drawRGB.
    
Код


//В этом примере рисуется одинокий полупрозрачный белый пиксель...

int[] rgbData = {0x88FFFFFF};
g.drawRGB(rgbData, 0, 1, i, j, 1, 1, true);


                


Это сообщение отредактировал(а) GhostMasterNet - 10.8.2007, 10:18
PM MAIL   Вверх
SatanClaus
Дата 10.8.2007, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Попробуй что-то вроде этого:
Код

Image image1 = Image.createImage("image.png");
int h = image1.getHeight();
int w = image1.getWidth();
int[] rgb = new int[w*h];
image1.getRGB(rgb,0,w,0,0,w,h);
for (int x = 0; x < w; x++) {
  for(int y = 0; y < h; y++) {
    int pixel = rgb[x+y*w];
    pixel = (pixel >> 1) & 0xFF;
    rgb[x+y*w] = pixel; 
  }
}
Image image2 = Image.createRGBImage(rgb, w, h, false);

При этом 0xFF - это маска, которая применяется для того чтобы не изменялись цвета RGB, а изменялась лишь ALPHA, ну и собственно pixel >> 1 (сдвиг вправо, если увеличиваешь ALPHA),
pixel << 1 (если уменьшаешь)...
Мне эта схема конечно же не подошла, я разбивал пиксель на компоненты R,G,B & Alpha. Потом изменял Alpha и снова собирал пиксель. Но мое затемнение так тупило (при том, что тестил я на SE K700), что мне пришлось отказаться от этой идеи. Тем более не все телефоны с MIDP2 будут правильно работать. А про MIDP1 вообще забудь.

Добавлено через 57 секунд
Image image1 = Image.createImage("/image.png"); Слэш забыл поставить...  smile 
PM MAIL   Вверх
Взюх
Дата 10.8.2007, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



GhostMasterNet

int[] rgbData = {0xffFFFFFF};
g.drawRGB(rgbData, 0, 1, 30, 30, 1, 1, true);

рисует белым

int[] rgbData = {0x00FFFFFF};
g.drawRGB(rgbData, 0, 1, 30, 30, 1, 1, true);

судя по всему, там совсем все прозрачно (ничего нету) 



Мне тут подсказали, что прозрачным на 50% прямоугольник я средствами Явы не нарисую.
Надо искать другие способы. 

PM MAIL   Вверх
dorogoyIV
Дата 11.8.2007, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

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



Цитата(Взюх @  10.8.2007,  17:25 Найти цитируемый пост)
Мне тут подсказали, что прозрачным на 50% прямоугольник я средствами Явы не нарисую.

тебе неправильно подсказали. 
PM MAIL   Вверх
darf
Дата 14.8.2007, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Должны были подсказать: средствами MIDP1 не нарисуешь, а если в MIDP2, то запросто.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

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

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


 




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


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

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