Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.06.17;
Скачать: CL | DM;

Вниз

scanline   Найти похожие ветки 

 
3d[Power]   (2002-01-07 03:17) [0]

Можете подробно объяснить основные принципы работы со Picture.Bitmap.scanline и с пикселями вообще


 
Donal_Graeme   (2002-02-04 05:42) [1]

хм..на подробность не претендую, но :
scanline имеет тип PByteArray, если я правильно помню.
соответственно, когда пишешь Bitmap.scanline[x] (где x - номер строчки) получаешь массив, содержащий информацию о цветах точек в заданной линии сканирования. данные в этом массиве зависят от типа битмапа. если битмап имеет глубину цвета 8 бит, то в массиве идут байты адреса цвета в палитре, если глубина 16 бит, то на каждый цвет уходит 2 байта и это уже реальный цвет в формате RRRRRGGG|GGGBBBBB (порядок следования байт я не помню, но это нетрудно установить экспериментально), при глубине в 24 бита цвета в массиве идут тройками B(8)G(8)R(8), т.е. сперва идёт байт синей составляющей, потом зелёной а затем красной; при 32 битной глубине, соответственно, на цвет уходит 4 байта, из которых первый - это альфа составляющая, потом цвет, как в 24-битном битмапе.
теперь небольшой примерчик :-)


function GetRColor (Bmp: TBitmap; x, y: LongInt): Byte;
var ScanLine : PByteArray;
begin
SL := Bmp.Scanline[y];
case Bmp.pixelformat of
pf24bit: Result := SL[x*3 +2];
pf32bit: Result := SL[x*4 +3];
else Result := 0;
end;
end;


надеюсь, это поможет :-)



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

Текущий архив: 2002.06.17;
Скачать: CL | DM;

Наверх




Память: 0.44 MB
Время: 0.006 c
1-55088
Dmitry Sheenok
2002-06-03 18:28
2002.06.17
HEX-код буквы


1-55116
Kuper
2002-06-06 12:48
2002.06.17
Люди, помогете пожалуйста, появился такой вопрос


3-55007
Proton
2002-05-19 19:34
2002.06.17
Чем порекомендуетк пользоваться при созании отчетов?


7-55323
Александп
2002-03-19 17:54
2002.06.17
Как в WinNt запустить Socket Server, чтобы он работал при стартовом окошке (нажмите Ctrl+Alt+Del)


3-55033
Грицаев Д.В.
2002-05-22 14:28
2002.06.17
работа из Д5 с IB6





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