Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.01;
Скачать: 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 вся ветка

Текущий архив: 2006.10.01;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.042 c
2-1157907446
_Гость_
2006-09-10 20:57
2006.10.01
Промогите решить проблему


4-1148639852
Shaman_
2006-05-26 14:37
2006.10.01
Перехват записи в буфер обмена


2-1157108981
.ruslan
2006-09-01 15:09
2006.10.01
...разделитель без черты


2-1156440931
GroW
2006-08-24 21:35
2006.10.01
Помогите определить IP посетителя сайта


15-1157918868
Alx2
2006-09-11 00:07
2006.10.01
Игорь Шевченко, поздравляю с юбилем!!!