Вниз
Скачать: CL | DM;

Как прорисовать массив на канве   Найти похожие ветки 

 
Priest ©   (2006-09-12 10:42) [0]

Есть указатель на буфер в котором находится считанная с видео камеры картинка. Как его прорисовать на канве?


 
Думкин ©   (2006-09-12 10:55) [1]

А формат картинки какой?


 
Priest ©   (2006-09-12 11:34) [2]

Вообщем сделал так

 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;


 
Dmitrij_K   (2006-09-12 11:40) [3]

Bmp.Canvas.Pixels - очень медленный способ
Используй ScanLine


 
Priest ©   (2006-09-12 12:05) [4]

Dmitrij_K
Я знаю. Вообще в идеале нужно было юзать SetStretchBltMode. Но у меня сразу это метод не заработал. И я не стал заморачиваться. Мне скорость не критична. Я предполагаю считывать картинку 1 раз в секунду.


 
Думкин ©   (2006-09-12 12:13) [5]

> Priest ©   (12.09.06 12:05) [4]

1. У вас БМП.
2. Причем тут Моде? Стреч понятно, но моде?


 
MBo ©   (2006-09-12 12:28) [6]

Можно использовать SetDiBits


 
Priest ©   (2006-09-12 12:58) [7]

Описался. Хотел написать StretchDIBits


 
icWasya ©   (2006-09-12 16:07) [8]

А нафига палитра, если  Bmp.PixelFormat := pf32bit ??



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.025 c
3-1153948468
bumper
2006-07-27 01:14
2006.10.01
Где проблема с рус.кодировкой - в FB 1.5.3 или EhLib 3.6?


9-1136425899
-=Nuke=-
2006-01-05 04:51
2006.10.01
Как Free Form сама грузит текстуры из GLMAterialLibrary ?


2-1158069501
A1ex
2006-09-12 17:58
2006.10.01
Как подключиться к базе...


15-1157913618
autokubitel
2006-09-10 22:40
2006.10.01
Лада Калина


1-1156004220
Elf-Eluna-Alina
2006-08-19 20:17
2006.10.01
Вставить текст в RichEdit




   Наверх