Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Результаты опроса: У вас были проблеммы с рисованием полупрозрачного изображения?
Да, у меня были проблеммы 1 50.00%
Нет, я уже давно знал как это делаеться 1 50.00%
Проблемы есть по другому вопросу обработки изображений 0 0%
Голосовавшие: 2. Вы ещё не голосовали в этом опросе

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2007, 20:26   #1
SalasAndriy
Форумчанин Подтвердите свой е-майл
 
Аватар для SalasAndriy
 
Регистрация: 01.11.2007
Сообщений: 157
Стрелка Метод рисования полупрозрачного изображения

Доброго времени суток! Когда-то я и сам не знал как рисовать полупрозрачные изображения, а щас хочу поделиться с вами как это делать. Это не так уже и сложно: все заключаеться в том чтобы добавлять некоторый процент одного цвета к другому. Например: мы хотим нарисовать красный пиксель который на 40% непрозрачен на синем пиксели. Давайте покажу как это реализовать в C++:

Код:
TColor GetSemilucentColor(TColor Buffer1, TColor Buffer2, 
                                    unsigned char Alpha)
{
   int R1, G1, B1;
   int R2, G2, B2;
   int C1, C2, C3;
   int C1C, C2C, C3C;
   unsigned char MainAlpha = 100 - Alpha;

   R1 = GetRValue(Buffer1);
   G1 = GetGValue(Buffer1);
   B1 = GetBValue(Buffer1);

   R2 = GetRValue(Buffer2);
   G2 = GetGValue(Buffer2);
   B2 = GetBValue(Buffer2);

   C1 = MainAlpha * R1 / 100;
   C2 = MainAlpha * G1 / 100;
   C3 = MainAlpha * B1 / 100;

   C1C = (100 - MainAlpha) * R2 / 100;
   C2C = (100 - MainAlpha) * G2 / 100;
   C3C = (100 - MainAlpha) * B2 / 100;

   return RGB(C1 + C1C, C2 + C2C, C3 + C3C);
}
Как видите эта функция вычисляет результатирующий цвет после комбинации 2: 1 нормального, а другого на любой процент (от 1 до 100) непрозрачного. Ну если возникнут некоторие вопросы, то задавайте! Буду рад помощи
SalasAndriy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как объекту рисования (овал) присвоить значение? Град Microsoft Office Excel 8 17.07.2008 10:42
Чтение изображения из базы данных, Вместо изображения - "System.Byte[]" ruelCrow Общие вопросы .NET 3 10.07.2008 23:29
Изображения в БД alikon1 БД в Delphi 3 08.10.2007 13:13
Программа для рисования иконок kuzmich Софт 9 02.06.2007 00:30