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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Напишите программу для тестирования пользовательскои функции http://www.cyberforum.ru/cpp-beginners/thread173956.html
Напишите программу для тестирования пользовательскои функции qualityPoints, которая проверяет балл студента и возвращает: 4, если балл студента составляет 90-100, 3, если в балл 80-89, 2, если в балл 70-79, 1, если в балл 60-69, и 0, если в балл ниже 60.
C++ Напишите программу для вычисления корней Напишите программу для вычисления корней (решений) линейного уравнения bx + c = 0 и для вычисления корней (решений) квадратного уравнения ax2 + bx + c = 0. Создать соответствующее количество строк комментариев. http://www.cyberforum.ru/cpp-beginners/thread173953.html
C++ Калькулятор. Работа с обыкновенными дробями
подскажите с чего начать...
Сдвиг курсором C++
Ребят чё то не пойму как вот с такой прогой справиться, писал что то писал и так не дошел.. вот само задание Написать программу, которая запрашивает ввод строки. С помощью клавиш управления курсором вверх и вниз строку можно перемещать в заданных пределах. Системный курсор погасить( функция CursotControl из файла conv.h). Для выхода из программы используется клавиша ESC. Для получения кода...
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) сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент; 2) номера строк и столбцов всех седловых точек матрицы. Примечание. Матрица А имеет седловую точку А(IJ).если А(IJ) является минимальным элементом в I-й строке и максимальным в J-м столбце подробнее

Показать сообщение отдельно
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, то цвета получаются вполовину яркие...
 
Текущее время: 20:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru