![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как прорисовать массив на канве
Priest © (2006-09-12 10:42:00)Есть указатель на буфер в котором находится считанная с видео камеры картинка. Как его прорисовать на канве?
icWasya (2006-09-12 16:07:00) [1]А нафига палитра, если Bmp.PixelFormat := pf32bit ??
Priest (2006-09-12 12:58:00) [2]Описался. Хотел написать StretchDIBits
MBo (2006-09-12 12:28:00) [3]Можно использовать SetDiBits
Думкин (2006-09-12 12:13:00) [4]> Priest © (12.09.06 12:05) [4]
1. У вас БМП.
2. Причем тут Моде? Стреч понятно, но моде?
Priest (2006-09-12 12:05:00) [5]Dmitrij_K
Я знаю. Вообще в идеале нужно было юзать SetStretchBltMode. Но у меня сразу это метод не заработал. И я не стал заморачиваться. Мне скорость не критична. Я предполагаю считывать картинку 1 раз в секунду.
Dmitrij_K (2006-09-12 11:40:00) [6]Bmp.Canvas.Pixels - очень медленный способ
Используй ScanLine
Priest (2006-09-12 11:34:00) [7]Вообщем сделал так
PPicture := It.BufferPaint;
for k := 0 to 255 do
begin
Pal[i, 0] := $FF;
Pal[i, 1] := i;
Pal[i, 2] := 0;
end;
// Palette erzeugen
with LogPal do
begin
palVersion := $0300;
palNumEntries := 256;
for k := 0 to 255 do
begin
with palPalEntry[k] do
begin
peRed := Pal[k, 0];
peGreen := Pal[k, 1];
peBlue := Pal[k, 2];
peFlags := 0;
end;
end;
end;
pLogPal := @LogPal;
hPal := CreatePalette(pLogPal^);
Bmp := TBitmap.Create;
try
Bmp.Width := It.Get_ResolutX;
Bmp.Height := It.Get_ResolutY;
Bmp.PixelFormat := pf32bit;
Bmp.Palette := hPal;
for y := 0 to Bmp.Height - 1 do
for x := 0 to Bmp.Width - 1 do
begin
Bmp.Canvas.Pixels[x,y]:=PPicture^;
Inc(PPicture);
end;
Bmp.SaveToFile('C:\img'+FloatToStr(Now)+'.bmp');
finally
FreeAndNil(Bmp);
end;
Думкин (2006-09-12 10:55:00) [8]А формат картинки какой?