Здравствуйте. Извините за ламерский вопрос

Ситуация такая: в памяти есть изображение — bitmap (получено с камеры). Есть указатель на него, известны размеры. Как вывести его на форму?
(Builder 6)
Я искал информацию по этой теме, и не нашел. если она уже обсуждалась — дайте, пожалуйста, ссылку.
Спасибо.
Здравствуйте, nya, Вы писали:
nya>Здравствуйте. Извините за ламерский вопрос
nya>Ситуация такая: в памяти есть изображение — bitmap (получено с камеры). Есть указатель на него, известны размеры. Как вывести его на форму?
nya>(Builder 6)
nya>Я искал информацию по этой теме, и не нашел. если она уже обсуждалась — дайте, пожалуйста, ссылку.
nya>Спасибо.
Самый простой и понятный способ — это просто саздать Bitmap и перекинуть данные в него:
function CreateBitmapFromData(Data: Pointer; DataWidth, DataHeight: integer;
PixelSize: byte): TBitmap;
var
y: integer;
Ptr: pointer;
ScanlineSize: integer;
DataPixelFormat: TPixelFormat;
begin
case PixelSize of
1: DataPixelFormat := pf8bit;
2: DataPixelFormat := pf16bit;
3: DataPixelFormat := pf24bit;
4: DataPixelFormat := pf32bit;
else
Raise EInvalidGraphic.Create('Unknown format!');
end;
result := TBitmap.Create;
result.Width := DataWidth;
result.Height := DataHeight;
result.PixelFormat := DataPixelFormat;
ScanlineSize := DataWidth * PixelSize;
for y := 0 to DataHeight - 1 do
begin
Ptr := result.ScanLine[y];
Move(pointer(integer(Data) + y * ScanlineSize)^, Ptr^, ScanlineSize);
end;
end;
Исходные данные:
Data — Указатель на данные
DataWidth, DataHeight — размер картинки по адресу Data
PixelSize — количество байт, занимаемые одним пикселом
Возвращает функция (я надеюсь

) готовую картинку
Спасибо... Попробую перевести это на C++.