Главная страница
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.46 MB
Время: 0.01 c
1-55167
AFROLOV
2002-06-04 11:59
2002.06.17
Ошибка при работе с Variant


3-55027
Eugene
2002-05-23 05:04
2002.06.17
Как правильно узнать структуру таблицы dbase или Foxpro ?


4-55373
ted
2002-04-11 10:51
2002.06.17
Помогите плиз достать иконку!!!!!!


1-55216
inc(665)
2002-06-04 23:07
2002.06.17
Хехехе


14-55280
Дмитрий_Б
2002-05-14 17:21
2002.06.17
Удаленные записи ??