Вниз
Скачать: CL | DM;

Pbitmap.ScanLine не работает!   Найти похожие ветки 

 
Ал   (2002-11-16 23:25) [0]

Уважаемые мастера!
При использовании KOL, Pbitmap и Pbitmap.ScanLine
возникает ошибка RuntimeError 255 на операторе ScanLine.
Пробовал вместе с KOL подключить VCL Graphics и использовать Tbitmap.ScanLine – все работает.

Вот код KOL:

procedure TForm_Main.Button1Click(Sender: PObj);
var
Bitmap : PBitmap;
BitmapArray : array of PByteArray;
x, y : Integer;
begin
Bitmap := NewBitmap(0, 0);
// 24 bit.
Bitmap.LoadFromFile("bitmap.bmp");

SetLength(BitmapArray, Bitmap.Height);
for y := 0 to Bitmap.Height - 1 do
BitmapArray[y] := Bitmap.ScanLine[y];
for x := 0 to Bitmap.Width - 1 do
begin
BitmapArray[y, x*3+2] := 255;
BitmapArray[y, x*3+1] := 255;
BitmapArray[y, x*3] := 255;
end;
end;

Кто-нибудь что-нибудь подскажет?


 
Bartov   (2002-11-17 00:28) [1]

Не знай, но еще при SaveToFile начиная с 256 цветов и более -
всегда сохраняется рисунок в 16 цветах.


 
SPeller ©   (2002-11-17 05:00) [2]

У тебя двумерный массив BitmapArray[i,j]. Размерность по i ты задаёшь SetLength(BitmapArray, Bitmap.Height), а про вторую рамерность ты совсем забыл. На вышеуказанной строке у тебя делается массив указателей на байтовые массивы, однако сами массивы у тебя не созданы.
Один из выходов - записать в объявлениях BitmapArray : array of ТByteArray, но тогда ошибка вылезет если у тебя строка развёртки (ScanLine) будет длиннее 256 байт.


> Не знай, но еще при SaveToFile начиная с 256 цветов и более
> - всегда сохраняется рисунок в 16 цветах.

Может, это результат оптимизации? Если количество реально использованных цветов <= 16, то битмап и записывается в 16-цветном формате без потери цвета.



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.011 c
1-67790
TolikM
2003-07-08 17:00
2003.07.21
Работа со StringGrid ом


14-67982
Soft
2003-07-01 13:43
2003.07.21
Как сделать кому-то пакость


1-67883
guest0
2003-07-07 07:14
2003.07.21
Обработка событий


1-67867
mdsns
2003-07-08 07:01
2003.07.21
Thread Error


14-68052
voland
2003-07-05 08:28
2003.07.21
Физика




   Наверх