Einzelnen Beitrag anzeigen

OrNEC

Registriert seit: 6. Nov 2009
493 Beiträge
 
FreePascal / Lazarus
 
#1

Beim *.bmp skalieren geht Qualität verloren?

  Alt 2. Mär 2013, 23:57
Hallo Jungs,

ich konvertiere ein JPEG-Bild in ein BMP-Bild und die Qualität des Bildes bleibt erhalten. Schneide ich jedoch das konvertierte BMP-Bild geht die Qualität verloren. Wieso eigentlich?

Delphi-Quellcode:
procedure TForm2.PictureBitBtnClick(Sender: TObject);
var
  jpeg: TJPEGImage;
  bmp, bmp2: TBitmap;
  von, nach: TRect;
begin

  if OpenPictureDialog1.Execute then
  begin
    jpeg := TJPEGImage.Create;
    try
      jpeg.CompressionQuality := 100;
      jpeg.LoadFromFile(OpenPictureDialog1.FileName);
      bmp := TBitmap.Create;
      bmp2 := TBitmap.Create;
      try
        bmp.Assign(jpeg);
        bmp.SaveTofile(ChangeFileExt(OpenPictureDialog1.FileName, '.bmp')); // <-- die Qualität bleibt erhalten
        bmp2.Width := 200;
        bmp2.Height := 200;

        // Schneiden
        von := Rect(0, 0, bmp.Width, bmp.Height);
        nach := Rect(0, 0, 200, 200);
        bmp2.Canvas.CopyRect(nach, bmp.Canvas, von);
        bmp2.SaveTofile(ChangeFileExt(OpenPictureDialog1.FileName, '(klein).bmp')); // <-- hier nicht, geht verloren
      finally
        bmp.Free;
        bmp2.Free;
      end;
    finally
      jpeg.Free;
    end;
  end;

end;
Angehängte Grafiken
Dateityp: jpg Autumn Leaves(klein).jpg (13,3 KB, 15x aufgerufen)

Geändert von OrNEC ( 3. Mär 2013 um 09:05 Uhr)
  Mit Zitat antworten Zitat