| imho.ws |
![]() |
|
|
|
# 1 |
|
Newbie
Регистрация: 13.10.2004
Сообщения: 28
![]() |
Есть поток. Из него я декодирую картинки. картинки получаются в таком виде: RGB RGB RGB, т.е. на каждый цвет по 1 байту - 3 байта на пиксел, на картинку - 320*240*3 байта. Все байты лежат в массиве 320*240*3 заподряд. Есть еще на форме компонент picture.
А вопрос такой: как эффективнее всего перенести битовый образ (мой массив, в котором лежат триплеты байтов) на компонент picture, т.е. попросту мой образ нужно отобразить на форму, если можно без компонента picture - еще лучше, т.е. отображать прямо на свободном месте формы мою картинку. Наилучший способ для меня - просто получить указатель на область памяти и скопировать мой массив туда и чтоб после такого копирования картинка появилась на экране в нужном мне месте формы |
|
|
|
|
# 2 |
|
СуперМод
IMHO Консультант 2005-2009 Регистрация: 14.08.2002
Адрес: Московская ПЛ, ракетный отсек
Пол: Male
Сообщения: 14 501
![]() |
lokiSE
Под виндой? Если да, то надо копать в сторону DirectDraw. Этот API позволяет с максимальной скоростью отображать любые картинки в любую область экрана.
__________________
Не засоряйте форум "спасибами"! Для выражения благодарности существуют ПС и репутация! Соблюдайте Правила! Распространенье наше по планете Особенно заметно вдалеке: В общественном парижском туалете Есть надписи на русском языке В. Высоцкий |
|
|
|
|
# 3 | |
|
Junior Member
Регистрация: 19.11.2004
Адрес: Dnepropetrovsk
Пол: Male
Сообщения: 67
![]() |
Цитата:
__________________
|
|
|
|
|
|
# 4 |
|
Advanced Member
Регистрация: 09.03.2004
Адрес: толстозадая Москва
Сообщения: 498
![]() ![]() ![]() ![]() |
ИМХО, если исходить из VCL Delphi, то на простом канвасе формы рисовать напрямую можно только через Pixels, однако у TImage уже реализован класс Bitmap с методами загрузки/записи из потока/в поток, и есть ScanLine,в который достаточно быстро можно выгрузить из потока триплеты, только нужно установить формат пикселя и цветовой режим, для триплетов 24 бита и без цветовой палитры... только следует учитывать выравнивания по байту и нужно знать ширину и высоту картинки в пикселях.
|
|
|
|
|
# 5 | |
|
Junior Member
Регистрация: 19.11.2004
Адрес: Dnepropetrovsk
Пол: Male
Сообщения: 67
![]() |
Цитата:
В дельфях это будет выглядеть наверно Form1.DoubleBuffered = True После этого ты спокойно можешь реализовать копирование на TCanvas.
__________________
|
|
|
|