Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

Как вывести картинку из буфера в DirectDraw?   Найти похожие ветки 

 
Nikki   (2008-02-28 14:06) [0]

Картинка хранится в буфере, есть указатель на нее и данные о ее параметрах. Самое главное, что она формата YUV. Нужно вывести серию таких картинок. Желательно еще использовать оверлей. Я использовала StretchDIBits, но он не работает с YUV 12-ти битным.
Ознакомившись с DD за пару дней в голове путанница, не знаю, с какого конца вообще начать. Есдинственная мысль сделать оверлейную поверхность и в ее структуру в lpSurface записать адрес моего буфера... Но как-то не работаить. Подскажите, пожалуйста, что можно сделать?


 
Sapersky   (2008-02-28 20:03) [1]

Проще всего отконвертировать в RGB и вывести стандартными средствами:

http://www.efg2.com/Lab/Graphics/Colors/YUV.htm

Единственное преимущество оверлея - аппаратное масштабирование, ну и то, что при поддержке нужного формата не нужно ничего конвертировать.

http://www.delphimaster.ru/articles/directx/index.html

В этом примере используются 16-битные UYVY/YUY2. Не знаю, есть ли карты с поддержкой 12-битного YUV; если это planar формат, в том виде, в каком это описано по первой ссылке - то вряд ли. Так что конвертировать, возможно, всё-таки придётся.
А аппаратное масштабирование можно при желании задействовать и с RGB.


 
Nikki   (2008-02-29 10:24) [2]

Спасибо!)


 
Sapersky   (2008-02-29 14:21) [3]

Не знаю, есть ли карты с поддержкой 12-битного YUV

Похоже что есть: Radeon 9000 и интегрированная на i915 выдают YV12 в списке FourCC-форматов (смотрел DXCapsViewer"ом из состава DX SDK).


 
Nikki   (2008-02-29 15:06) [4]

Карточка у меня поддерживает такой формат)
Просто я пыталась создать оверлей и указателю на его поверхность присвоить адрес своего буфера(это работает, но с обычными поверхностями),
но оверлейная, созданная в видеопамяти, не позволяет ставить себе флаги, вынуждающие учитывать эти параметры (что я использую указатель), к ней можно обращаться только залочив и пересылая биты какой-нить memcopy вроде, а это не очень удобно)



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

Текущий архив: 2010.08.27;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.078 c
15-1270118822
Knight
2010-04-01 14:47
2010.08.27
Сервис и ADO


2-1272958382
Пробегалец
2010-05-04 11:33
2010.08.27
Быстрый вывод графики на канву


15-1272227404
Юрий
2010-04-26 00:30
2010.08.27
С днем рождения ! 26 апреля 2010 понедельник


15-1267445916
Piter
2010-03-01 15:18
2010.08.27
Форматирование HTML кода из Delphi


15-1266678959
GDI+
2010-02-20 18:15
2010.08.27
Интересно, когда андроиду можно будет просто сказать.