Einzelnen Beitrag anzeigen

Schokohase
(Gast)

n/a Beiträge
 
#2

AW: PByteArray - Scanline für große Bilder

  Alt 19. Jun 2018, 08:05
Nein, das Array hat eine statische Länge und die kann eben nicht geändert werden.

Du kannst den Range-Check aber gezielt für diesen Part ausschalten:

Delphi-Quellcode:

procedure MeineBildverarbeitung(..........);
  type
    PScanline: ^TScanline;
    TScaneline: array[0..0] of byte; // JEDES statisch definierte Array erfüllt prinzipiell die Anforderung
  var
    ByteLine : PScanline;
    i, j : Integer;
    xmax : Integer;
    ymax : Integer;

  begin

    aBmp.pixelformat := pf24bit;

    for j := ystart to ymax do
      begin

        ByteLine := aBmp.ScanLine[ j ];
{$R-} // Rangecheck AUS
            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 ];
{$R+} // Rangecheck EIN
  Mit Zitat antworten Zitat