Registriert seit: 6. Nov 2009
493 Beiträge
FreePascal / Lazarus
|
Beim *.bmp skalieren geht Qualität verloren?
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;
Geändert von OrNEC ( 3. Mär 2013 um 09:05 Uhr)
|
|
Zitat
|