Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как прорисовать массив на канве


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]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо