В массиве - цвета точек картинки. Как вывести в окно?
Пробую писать программку для просмотра видеофайлов. Кадр обрабатывается в массиве (предположим - двухмерном) - в виде последовательности цветов точек. Потом надо его вывести на экран. Как сделать этот вывод достаточно быстро?
ЗЫ. незачем один и тот же вопрос в две темы постить, и так ответят
Цитата:
Originally posted by DigitalWolF
Сначала делаешь CreateDIBSection, она тебе дает указатель на область памяти и Handle битмапа. Заносишь в эту память свою картинку, затем BitBlt'ишь этот битмап куда тебе надо (на окошко например). Ось по умолчанию при BitBlt использует немного хардварного ускорения, так что работает это довольно быстро.
Сначала делаешь CreateDIBSection, она тебе дает указатель на область памяти и Handle битмапа. Заносишь в эту память свою картинку, затем BitBlt'ишь этот битмап куда тебе надо (на окошко например). Ось по умолчанию при BitBlt использует немного хардварного ускорения, так что работает это довольно быстро.
Смысл понял. То, что нужно. Только я этими DIB никогда не пользовался, равно как и BitBlt :( - вобщем запутался с параметрами.
Можно пример: создание DIB, задание одной точки и вывод изображения куда-нибудь?
Цитата:
Originally posted by Sanya DLR
Смысл понял. То, что нужно. Только я этими DIB никогда не пользовался, равно как и BitBlt :( - вобщем запутался с параметрами.
Можно пример: создание DIB, задание одной точки и вывод изображения куда-нибудь?
Смысл понял. То, что нужно. Только я этими DIB никогда не пользовался, равно как и BitBlt :( - вобщем запутался с параметрами.
Можно пример: создание DIB, задание одной точки и вывод изображения куда-нибудь?
Цитата:
Originally posted by johncapfull
Спасибо, теперь все OK!
Только вот прорисовать за секунду 25 кадров 800*600 все равно не успевает (400 MHz), не говоря уж про предварительную обработку.
Вопрос: это нереально? Вроде 25*800*600*4=48 Мбайт/сек. Чего не хватает?
Цитата:
Originally posted by Sanya DLR
Спасибо, теперь все OK!
Только вот прорисовать за секунду 25 кадров 800*600 все равно не успевает (400 MHz), не говоря уж про предварительную обработку.
Вопрос: это нереально? Вроде 25*800*600*4=48 Мбайт/сек. Чего не хватает?
Спасибо, теперь все OK!
Только вот прорисовать за секунду 25 кадров 800*600 все равно не успевает (400 MHz), не говоря уж про предварительную обработку.
Вопрос: это нереально? Вроде 25*800*600*4=48 Мбайт/сек. Чего не хватает?
API-шные функции для работы с графикой не самые быстрые. Хочешь быстро, используй DirectX.