Главная страница
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.052 c
15-1158064876
Некто
2006-09-12 16:41
2006.10.01
А у нас тут взрыв в соседнем доме.... сидим, боимся....


9-1136053715
haZard0us
2005-12-31 21:28
2006.10.01
GLScene=ландшафт+тайлы


1-1155711055
QuickFinder
2006-08-16 10:50
2006.10.01
Дату в 4 байта


3-1153825860
tomkat
2006-07-25 15:11
2006.10.01
FireBird Embeded в реализации


3-1154073427
RomanH
2006-07-28 11:57
2006.10.01
Тривиальный SQL-запрос