2016-03-21 7 views
0

Mit dieser Freeware, um einige D5-ent Zeug für meine lokale Gartenclub-Datenbank zu aktualisieren.Speichern einer RotateImage

http://www.delphiarea.com/products/delphi-components/rotateimage/

Es hat eine Loadfrom, ist schnell genug und funktioniert sehr gut, aber es keine SaveToFile hat. Das Forum auf der Seite hat einige sehr alte Fragen zum Speichern, aber keine endgültigen Antworten.

Könnte mir bitte jemand zeigen, wie ich das Bild speichern soll, nachdem es gedreht wurde?

Ich habe eine Reihe von Routinen online für die Bildspeicherung gefunden und keiner von ihnen scheint zu funktionieren. Es speichert etwas, aber es ist nicht mehr ein JPG. Ich habe versucht, nach einer Möglichkeit zu suchen, den Canvas-Bereich zu sichern, konnte aber nichts zum Kompilieren bekommen. Im Allgemeinen haben sie alle zusammen mit "Kann kein Bitmap/Canvas, Bild/etc zu einem TRotateImage zuweisen"

ein wenig aus meiner Tiefe hier.

p.s. Tried ImageEx und Image32, aber beide Versionen für D5 sind viel zu kompliziert, nur um die gedrehte Datei zu speichern.

Antwort

4

Gemäß der Dokumentation von TRotateImage hat es eine Eigenschaft namens RotatedBitmap, die das gedrehte Bild als Bitmap speichert. Sie können ganz einfach, dass der Bitmap in ein JPEG-Bild wandeln die TJPEGImage Klasse von der Einheit mit jpeg:

uses jpeg; 

procedure SaveRotatedImage; 
var 
    jpg: TJPEGImage; 
begin 
    jpg := TJPEGImage.Create(); 
    try 
    jpg.Assign(YourRotateImage.RotatedBitmap); 
    jpg.SaveToFile('filename.jpg'); 
    finally 
    jpg.Free; 
    end; 
end; 

Als Alternative zu TRotateImage, empfehle ich die Graphics32 Bibliothek, die verschiedenen Interpolationskerne mit komplexen Transformationen auf Bilder anwenden kann, handle Transparenz und vieles mehr. Aber wenn Sie nur Rotation benötigen und mit den Ergebnissen Ihrer Komponente zufrieden sind, können Sie auch bleiben.

+0

Danke, ich werde das später heute versuchen. Ich hatte Grafik32 installiert, aber es hat eine große Lernkurve und ich möchte diese alte Anwendung nicht neu schreiben müssen. – user2175495