Einzelnen Beitrag anzeigen

bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.138 Beiträge
 
Delphi 11 Alexandria
 
#1

PByteArray - Scanline für große Bilder

  Alt 19. Jun 2018, 07:38
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
  Mit Zitat antworten Zitat