ich verwende PByteArray und scanline um große Bilder zu bearbeiten. Wenn aber die
Pixelanzahl*3 >32767 ist bekomme ich einen Range Check error. Kann ich die Größe von TByteArray dynamisch an meine Bildgröße anpassen ?
Delphi-Quellcode:
unit System.SysUtils;
PByteArray = ^TByteArray;
TByteArray =
array[0..32767]
of Byte;
Delphi-Quellcode:
procedure MeineBildverarbeitung(..........);
ByteLine : pbyteArray;
i, j : Integer;
xmax : Integer;
ymax : Integer;
begin
aBmp.pixelformat := pf24bit;
for j := ystart to ymax do
begin
ByteLine := aBmp.ScanLine[ j ];
BValueArray[ i - xstart, j - ystart ] := ByteLine[ 3 * i ];
GValueArray[ i - xstart, j - ystart ] := ByteLine[ 3 * i + 1 ];
RvalueArray[ i - xstart, j - ystart ] := ByteLine[ 3 * i + 2 ]; // range error kommt hier