Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.11.27;
Скачать: [xml.tar.bz2];

Вниз

SetDIBitsToDevice+alpha shannel   Найти похожие ветки 

 
Q_Q   (2011-08-05 11:31) [0]

Здравствуйте! Эта функция в качестве буффера принимает rgba массив. Заполненый массив имеется. Но функция при выводе альфу игнорирует :(

Как лечить?

BITMAPINFO* bm_info = new BITMAPINFO;
       bm_info->bmiHeader.biSize = 40;
       bm_info->bmiHeader.biSizeImage = 0;
       bm_info->bmiHeader.biWidth = Buff.Width;
       bm_info->bmiHeader.biHeight = -Buff.Height;
       bm_info->bmiHeader.biPlanes = 1;
       bm_info->bmiHeader.biBitCount = 32;
       bm_info->bmiHeader.biCompression = BI_RGB;

....................................

SetDIBitsToDevice(hDC, x, y, Buff.Width, Buff.Height, 0, 0, 0, Buff.Height, ptr_buff_paint, bm_info, DIB_RGB_COLORS);



 
Q_Q   (2011-08-05 11:32) [1]

В качестве приемника канва формы


 
Sapersky   (2011-08-05 11:37) [2]

GDI вообще с альфой не дружит, за исключением отдельных специально обученных функций (AlphaBlend).


 
Q_Q   (2011-08-05 11:42) [3]

мдааа....
а зачем все эти понты с 32-ух битным массивом?


 
Sapersky   (2011-08-05 12:05) [4]

Не знаю. Может, хотели сделать поддержку альфы, но по каким-то причинам не получилось.
Опять же, 4 байта на пиксель - более "круглый" и удобный в обращении размер даже без использования альфы. Видеокарты только с 32 битами и работают, хотя 4-й байт часто "пропадает".
Вывод битмапа на экран на некоторых картах быстрее в варианте 32->32 (чем 24->32), меньше преобразований.


 
Q_Q   (2011-08-05 12:12) [5]

угу понятно. А может подскажете функцию выполняющую обратное действие по отношению к сабжевой. ТЕ. с канвы в массив. Понятно что кроме getpixel


 
sniknik ©   (2011-08-05 12:21) [6]

>  и удобный в обращении размер даже без использования альфы. Видеокарты только с 32 битами и работают
+ автоматическое выравнивание на границу четного блока... т.е. оптимизация скорости в ущерб размеру... (как обычно и бывает либо одно либо другое ;)


 
Sapersky   (2011-08-05 12:32) [7]

А может подскажете функцию выполняющую обратное действие по отношению к сабжевой. ТЕ. с канвы в массив.

BitBlt? (битмап в памяти - тоже фактически массив).
Но вообще с канвы (экрана) лучше по возможности ничего не брать, чтение из видеопамяти медленнее записи.
Для полупрозрачных окон есть специальная функция - UpdateLayeredWindow.


 
Псарь   (2011-08-05 12:40) [8]


> Q_Q   (05.08.11 11:31)  


Может функция AlphaDIBBlend поможет?


> угу понятно. А может подскажете функцию выполняющую обратное
> действие по отношению к сабжевой. ТЕ. с канвы в массив.
> Понятно что кроме getpixel


Создавай DIB (Указываю буффером Ваш массив), помещай в DC.
Теперь можешь манипулировать с данными через указатель, а рисовать обычным блиттом. Очень удобно.


 
han_malign   (2011-08-05 12:41) [9]


> а зачем все эти понты с 32-ух битным массивом?

- между прочим, теоретически - маска каналов может быть и $000003FF, $000FFC00, $3FF00000...
Я правда не пробовал, но в X Window System поддержку подобной экзотики видел...


 
Псарь   (2011-08-05 12:41) [10]

*Указываю = Указывай


 
Q_Q   (2011-08-05 17:29) [11]


> Может функция AlphaDIBBlend поможет?

Погуглил. Говорят заголовочный есть, функции нету. Призрак )


> Создавай DIB (Указываю буффером Ваш массив), помещай в DC.


В эту сторону сейчас и копаю + BitBlt. Идет туго. Так что желающим помочь  буду благодарен.


 
Q_Q   (2011-08-05 17:49) [12]


> - между прочим, теоретически - маска каналов может быть
> и $000003FF, $000FFC00, $3FF00000...Я правда не пробовал,
>  но в X Window System поддержку подобной экзотики видел.
> ..


Это совсем извращение. Не, если конечно это собственный формат... или отдельная маска - тады да


 
Псарь   (2011-08-05 18:05) [13]


> Q_Q   (05.08.11 17:29) [11]


CreateDIBSection, SelectObject.


 
Q_Q   (2011-08-05 18:08) [14]

Да знаю, знаю. Тупость в пятницу вечером напала )) втыкнуть не получаца



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2011.11.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.004 c
15-1311963926
Petr V. Abramov
2011-07-29 22:25
2011.11.27
Oracle 11 R1


15-1312461790
Сергей М.
2011-08-04 16:43
2011.11.27
Теперь понятно почему Скайп иной раз изрядно поглючивает)


1-1272455088
RAN-II
2010-04-28 15:44
2011.11.27
Доступ к документу FireFox


15-1312574516
oldman
2011-08-06 00:01
2011.11.27
Из беседы с Р. Бредбери


2-1312416987
Псарь
2011-08-04 04:16
2011.11.27
Архитектура в CAD-системе. Изображения.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский