Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

альфа-наложение цвета - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Напишите программу для тестирования пользовательскои функции http://www.cyberforum.ru/cpp-beginners/thread173956.html
Напишите программу для тестирования пользовательскои функции qualityPoints, которая проверяет балл студента и возвращает: 4, если балл студента составляет 90-100, 3, если в балл 80-89, 2, если...
C++ Напишите программу для вычисления корней Напишите программу для вычисления корней (решений) линейного уравнения bx + c = 0 и для вычисления корней (решений) квадратного уравнения ax2 + bx + c = 0. Создать соответствующее количество строк... http://www.cyberforum.ru/cpp-beginners/thread173953.html
C++ Калькулятор. Работа с обыкновенными дробями
подскажите с чего начать...
Сдвиг курсором C++
Ребят чё то не пойму как вот с такой прогой справиться, писал что то писал и так не дошел.. вот само задание Написать программу, которая запрашивает ввод строки. С помощью клавиш управления...
C++ немагу найти ошибки http://www.cyberforum.ru/cpp-beginners/thread173930.html
#include <iostream> #include <cmath> using namespace std; int main() { double z1,z2,a; cout<<"a"<<endl; cin>>a; cout<<"pi=3,1416"<<endl; pi=3.1416;
C++ Курсач "Алгоритм Ершова" В общем, дали курсач на заданную тему. Я не прошу вас мне ее сделать, но есть несколько вопросов по нему. 1) сказали сделать с графикой. как рисовать графы в dev C++? да и вообще, как рисовать ?... подробнее

Показать сообщение отдельно
positron
22 / 7 / 1
Регистрация: 22.04.2010
Сообщений: 105
09.10.2010, 02:30  [ТС]
DeadRipper, премного благодарен). Простое решение, зато результат какой)) Не то что некоторые другие "алгоритмы" (к примеру):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/* alpha blend routine */
unsigned int AlphaBlend(const unsigned int bg, const unsigned int src)
{
   unsigned int a = src >> 24;    /* alpha */
 
   /* If source pixel is transparent, just return the background */
   if (0 == a) 
      return bg;
 
   /* alpha blending the source and background colors */
   unsigned int rb = (((src & 0x00ff00ff) * a) +  
      ((bg & 0x00ff00ff) * (0xff - a))) & 0xff00ff00;
   unsigned int    g  = (((src & 0x0000ff00) * a) + 
      ((bg & 0x0000ff00) * (0xff - a))) & 0x00ff0000;
 
    return (src & 0xff000000) | ((rb | g) >> 8);
}
Добавлено через 1 час 32 минуты
И наверное лучше
C++
1
2
3
R = Ra + Rb*float(Ab/0xFF)
if(R>255)
    R=255;
Потому что если делить на 2, то цвета получаются вполовину яркие...
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru