Главная страница
    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-1157973519
Чехонте
2006-09-11 15:18
2006.10.01
Однажды на берегу Великого Северного моря. лит.миниатюра


1-1156140355
5serg
2006-08-21 10:05
2006.10.01
Как зарегистрировать сервис в реестре Windows


3-1154318587
VadimSpb
2006-07-31 08:03
2006.10.01
Проблема с датой


15-1157872231
Сергуня
2006-09-10 11:10
2006.10.01
Нужны бабки!


2-1158087167
ukku
2006-09-12 22:52
2006.10.01
Свойство-массив как основное свойство объекта





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский