Code: Alles auswählen
image : TFPCustomImage;
hread : TFPReaderJPEG;
hwrite : TFPWriterJPEG;
begin
try
image := TFPMemoryImage.Create(0, 0);
hread := TFPReaderJpeg.Create();
hwrite := TFPWriterJpeg.Create();
image.LoadFromStream(idata, hread); // JPEG aus Stream
image.SaveToFile(sfile1, hwrite); // in Originalgröße speichern
image.SetSize(960, 540);
image.SaveToFile(sfile2, hwrite); // in 75% Größe speichern
finally
image.Free;
hread.Free;
hwrite.Free;
end;
end;
SetSize funktioniert schonmal nicht. Da wird zwar was gespeichert, auch in der richtigen Größe, aber das Bild ist zerstückelt. Nun lese ich in diversen Foren immer was von: TBitmap erzeugen, mit StretchDraw auf Bitmap zeichnen, Bitmap dem JPEG wieder zuweisen.
Ist das wirklich so umständlich? Und TBitmap funktioniert bei mir nicht, ich lasse das in der Konsole laufen und verwende die Units fpimage, fpwritejpeg, fpreadjpeg, fpcanvas, fpimgcanv. Ich kann auf das Bild auch mit Canvas zeichnen. Nur die Größe bekomme ich nicht angepasst.
Gibt es nicht sowas wie image.Resize()?