Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Как добится на Canvas в Builder'e эффекта транспарентности?  (Прочитано 10115 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Noname
Гость
« : 15-08-2005 22:36 » 

Надо получить наложение текстур, пробовал сложение Color через Pixels[][],- работает но яркость повышается...
Может какой метод есть? Слышал, есть параметр что-то A, вроде, помимо RGB?
Записан
PooH
Глобальный модератор

ru
Offline Offline
Пол: Мужской
... и можно без хлеба!


« Ответ #1 : 16-08-2005 07:02 » 

"A" как раз и предназначен для хранения "транспарентности" для каждого пикселя. А формула оч. простая: допустим Х "транспарентность" точки2 с диапазоном от 0-255 тогда:
R(итог)=R(точки1)*(Х/255) + R(точки2)*(1-Х/255)
G(итог)=G(точки1)*(Х/255) + G(точки2)*(1-Х/255)
B(итог)=B(точки1)*(Х/255) + B(точки2)*(1-Х/255)

а если X - "коэффициент видимости", то:
R(итог)=R(точки1)*(1-Х/255) + R(точки2)*(Х/255)
G(итог)=G(точки1)*(1-Х/255) + G(точки2)*(Х/255)
B(итог)=B(точки1)*(1-Х/255) + B(точки2)*(Х/255)

вроде бы, так.
Записан

Удачного всем кодинга! -=x[PooH]x=-
Noname
Гость
« Ответ #2 : 17-08-2005 20:55 » 

Ага, ясенно... Еще вопрос. Как к альфа доступ получить тогда? В смысле,
   "R(итог)=R(точки1)*(Х/255) + R(точки2)*(1-Х/255)
    G(итог)=G(точки1)*(Х/255) + G(точки2)*(1-Х/255)
    B(итог)=B(точки1)*(Х/255) + B(точки2)*(1-Х/255)"
где мне параметр "X" достать?
Если не трудно, примерчик махонькой, не помешает... Улыбаюсь 
Записан
Noname
Гость
« Ответ #3 : 19-08-2005 20:35 » 

Што-то все молчат... Призадумались, наверное Улыбаюсь.
Набрел тут на описание св-ва PixelFormat:
 "Свойство PixelFormat - позволяет определить и изменить формат изображения. Возможные значения - pfDevice,     pf1bit, pf4bit, pf8bit, pf15bit, pf16bit, pf24bit, pf32bit, pfCustom. Режим pfDevice соответствует битовой    карте DDB. Глубина цвета в 1, 4 и 8 бит на пиксел предусматривает наличие у изображения палитры. Другие       режимы хранят значения яркостей точек в каждом из трех основных цветов - красном (R), зеленом (G) и синем     (В). Разрядность 15 бит соответствует распределению бит 5-5-5 (RGB555), 16 бит - RGB 565, 24 бит - RGB888.    Режим 32 бит похож на 24-битный, но в нем дополнительно добавлен четвертый канал (альфа-канал), содержащий    дополнительную информацию о прозрачности каждой точки."
Лично мне неграмотному многое обьяснило Улыбаюсь То есть получается, загружаю я 24-х битовую BMPшку, ставлю   
     Bitmap->PixelFormat=pf32bit;
и, по идее, получаю четвертый (Альфа) канал просрачности...
Но как же мне его использовать-то? В RGB макросе его не предусмотрено,(ну я не нашел) а на нем у меня фантазия заканчивается... Жаль
Я, к слову, пишу так:
myImg->Bitmap->Canvas->Pixels[][]=(TColor)RGB(255,0,0);
Плз, подскажите как НАДО Улыбаюсь

PS/
Описание PixelFormat нашел на сайте http://wladm.narod.ru
Записан
sergvs
Гость
« Ответ #4 : 31-08-2005 05:10 » 

Скачай с http://peterhost.dl.sourceforge.net/sourceforge/graphics32/graphics32-1-7-1.zip
пакет, установи его в свой билдер и будет тебе щастье, вплоть до изменения прозрачности
колесиком мыши. Там много полезных примеров.
На всякий случай сайт разработчика  http://g32.org
  Успехов.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines