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

Вниз

Быстрый доступ до цвета в TBitmap   Найти похожие ветки 

 
Ihor   (2002-01-31 16:40) [0]

Привет всем!

У меня возникла проблема, мне нужно быстрый доступ до пикселя битмапе. То есть мне нужно для каждово пикселя получить отдельно три компонента цвета (R G B). И как их потом собрать опять.
А может быть не толька 24 битная.

А через aBitmap.Canvas.Pixels[x,y] очень долго : -(((

Помогите, плз.

Всем спасибо.


 
MBo   (2002-01-31 16:47) [1]

ScanLine быстрее, а еще лучше GetDiBits


 
Ihor   (2002-01-31 16:55) [2]

Но как из 8, 16 или 32 битов R G B достать ?


 
MBo   (2002-01-31 17:19) [3]

по разному. 8 бит - надо читать палитру и соотносить номер цвета по инлкусу в палитре, 32 - просто значения.

вот пример 8 bit заполняет градациями серого
для чтения вместо GetBitmapBits может,придется исп. GetDIBits - обращение сложнее (в хелпе написано, что первая не поддерживается, сам не пробовал).

для 24-32 надо будет массив TRGBQuad или TRGBTriple.
посмотрю у себя.

на этом сайте есть статья об устройстве bmp - почитай

var a:array[0..255,0..255] of byte;
ct:array[0..255] of TRGBQuad;
b:tbitmap;
i,j:integer;
begin
b:=tbitmap.create;
b.pixelformat:=pf8bit;
b.Width := 256;
b.Height := 256;
for i:=0 to 255 do begin
ct[i].rgbRed:=i;
ct[i].rgbBlue:=i;
ct[i].rgbGreen:=i;
ct[i].rgbReserved:=0;
end;
for i:=0 to 255 do for j:=0 to 255 do a[i,j]:=trunc(sqrt(i*j));
SetDIBColorTable(b.canvas.Handle,0,$100,ct);
SetBitmapBits(b.Handle, sizeof(a),@a);
Image1.picture.assign(b);
b.free;


 
Ihor   (2002-01-31 17:36) [4]

Thanks



Страницы: 1 вся ветка

Форум: "Media";
Текущий архив: 2002.06.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.005 c
1-39992
ЗЛ
2002-06-03 14:29
2002.06.13
И еще один вопрос (не в тему, но очень нужно) вынужден был постав


14-40154
Baz
2002-05-09 06:15
2002.06.13
Организация местных форумов


3-39959
Maxs
2002-05-21 18:33
2002.06.13
Обработка ошибок ADO


1-39996
[BAD]Angel
2002-06-03 15:05
2002.06.13
Нужна помошь с поиском хэндла меню...


14-40161
Феликс
2002-05-10 22:47
2002.06.13
Кого любят женщины?





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