Главная страница
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.018 c
14-68016
AlexRush
2003-07-04 14:43
2003.07.21
Администрирование NT : Sharing


1-67759
BelCaesar
2003-07-08 19:44
2003.07.21
С канвы на принтер или в bmp файл!


1-67859
race1
2003-07-07 16:07
2003.07.21
memory $ dynamic array


7-68082
dim-
2003-05-08 12:04
2003.07.21
Сканеры с автоподачей


1-67763
Dimaxx
2003-07-09 00:07
2003.07.21
Папка профиля пользователя