Автор
|
Тема: Создание DC определенного bpp
|
m_fox |
опубликован 30-08-2001 12:54 MSK
Как создать контекст в памяти с определенной глубиной цвета? Например как создать контекст 32bpp при любой глубине цвета установленного в Windows, например при 256 цветах. Т.е. в этом случае не получится использовать CreateCompatibleDC.
|
stan
|
опубликован 30-08-2001 13:36 MSK
Может я чего-то не понимаю, но зачем тебе вообще знать bpp контекста. Ты всегда пишешь в него и читаешь RGB триплетами, а если тебе нужна картинка 32 bpp, то ее создать можно с помощью CreateBitmap а там bpp любой. |
m_fox
|
опубликован 30-08-2001 13:58 MSK
У меня есть bmp, и пусть созданая CreateBitmap с 32 bpp:) 256 цветов в windows установлено Создаю контекст в памяти через CreateCompatibleDC и пытаюсь выполнить SelectObject. Вполне логичное действие :) Не работает. Читаю MSDN: глубина цвета контекста должна совпадать с глубиной цвета в bmp!!!
|
stan
|
опубликован 30-08-2001 16:12 MSK
Ты прав. Реально они должны совпадать. Значит, не судьба :).Используй CreateCompatibleBitmap как написано в книге мудрости. |
m_fox
|
опубликован 30-08-2001 17:15 MSK
Да, но дело в том, что один раз понадобилось иметь bmp 24 bpp и использовать их в контексте. Хорошо, я заметил этот косяк т.к. у меня только 32 bpp выставляется на десктопе. Хотя я обошел это друим способом, но хотелось бы узнать возможно ли такое. |
migel
|
опубликован 30-08-2001 22:00 MSK
DIB не пробывал? - специально для этих вещей предназначен. |
m_fox
|
опубликован 31-08-2001 10:59 MSK
при чем тут DIB? Сделай DIB 24 bpp и сделай select в DC. Какая разница в этом случае DIB и DDB? |
migel
|
опубликован 31-08-2001 11:08 MSK
Какой Селект??? ты чего??? SetDIBitsToDevice нужно пользовать! он тебе все корректно и сделает, А HBITMAP по определению DDB отсеюда и требование на соответсвие глубин цвета. |
m_fox
|
опубликован 31-08-2001 11:19 MSK
Да? А если я хочу использовать AlphaBlend и указывать прозрачноть 4-ым байтом? Как тогда? |
migel
|
опубликован 31-08-2001 11:36 MSK
В таких случаях нужно мешать DDB и DIB а вообще если работаеш с конкретным DC + выкрутасы то создавай совместимы DDB и копируй нужные DIB в них. |
m_fox
|
опубликован 31-08-2001 11:41 MSK
У меня нет проблем при работе с изображениями. AlphaBlend работает DC to DC. |