Einzelnen Beitrag anzeigen

OlliWW

Registriert seit: 31. Aug 2011
159 Beiträge
 
#1

JPG Resize bei großen Dateien

  Alt 23. Jul 2013, 12:00
Hallo Zusammen,

Ich habe eine kleine Routine zum Verkleinern von JPG-Bildern. Bei vielen Bildern funktioniert es auch wunderbar, bei einigen nicht.
Was die Bilder gemeinsam haben, bei denen es nicht funktioniert, ist, dass sie sehr groß sind (> 2 MB).
Hier mal der Code:
Delphi-Quellcode:
  procedure prcResizeJPG(sPath: String; iWidth: Integer; iHeight: Integer);
  var
    imgBMP: TBitmap;
    imgJPG: TJpegImage;
  begin
    imgJPG := TJpegImage.Create;
    try
      imgJPG.LoadFromFile(sPath);
      imgBMP := TBitmap.Create;
      try
        imgBMP.Width := iWidth;
        imgBMP.Height:= iHeight;
        imgBMP.Canvas.StretchDraw(imgBMP.Canvas.Cliprect, imgJPG);
        Self.Canvas.Draw(100, 10, imgBMP);
        imgJPG.Assign(imgBMP);
        imgJPG.SaveToFile(sPath);
      finally
        imgBMP.free;
      end;
    finally
      imgJPG.free;
    end;
  end;
Probiere ich diesen Code, stürzt es bei StrechDraw ab. Gibt es eine Möglichkeit, dies zu verbessern?
  Mit Zitat antworten Zitat