Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.10.01;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.013 c
15-1158000666
AntiUser
2006-09-11 22:51
2006.10.01
Сортировка и ORDER BY


2-1157807035
DelphiN#1
2006-09-09 17:03
2006.10.01
СкринШоты


1-1155790814
DelphiLexx
2006-08-17 09:00
2006.10.01
Краткость инициализации записи


1-1156148868
DelphiLexx
2006-08-21 12:27
2006.10.01
Продвинутый PaintTo


4-1148486061
Raptoridzevv
2006-05-24 19:54
2006.10.01
хндл => path





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский