Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.21;
Скачать: 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 вся ветка

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

Наверх




Память: 0.47 MB
Время: 0.02 c
1-67813
sergio_serg
2003-07-09 14:50
2003.07.21
dbgrid


4-68129
Шишкин Илья
2003-05-18 11:39
2003.07.21
Как лучше закрыть чужое приложение?


14-68020
JibSkeart
2003-07-04 16:54
2003.07.21
EhLib как сделать чтобы работал без IDE


14-68063
Nik8.
2003-07-06 00:27
2003.07.21
Вопрос 2


14-68017
Soft
2003-07-03 12:21
2003.07.21
Любой программист хоть иногда занимается хакерской работой