![]() |
TImage speichern
Hallo zusammen,
ich hab folgendes Problem: Aus einer Datei zeige ich das Thumbnail in einem TImage an. Extrahiert und angezeigt wird es wie folgt:
Delphi-Quellcode:
Funktioniert soweit.
Thumb: TPicture;
SetOlePicture(Thumb, doc.Thumbnail); Image: TImage; Image.Picture:= Thumb; Wenn ich jetzt das Bild speichere:
Delphi-Quellcode:
kann ich die Datei nicht wieder mit
Image.Picture.SaveToFile('C:\xxx.bmp');
Delphi-Quellcode:
einlesen. Fehlermeldung: ungültiges Format.
Image.Picture.LoadFromfile('C:\xxx.bmp');
Versuche mit
Delphi-Quellcode:
gehen auch nicht.
Image.Picture.Bitmap.SaveToFile('C:\xxx.bmp');
Image.Picture.Graphic.SaveToFile('C:\xxx.bmp'); Image.Picture.Metafile.SaveToFile('C:\xxx.wmf'); Es kommt zwar immer 'ne Datei raus (Format???), aber wieder einlesen kann man sie nicht. Kann mir da jemand mal einen Tip geben woran das liegt? |
Re: TImage speichern
Zeig doch mal die SetOlePicture Procedure.
|
Re: TImage speichern
Unit
AxCtrls, procedure SetOlePicture(Picture: TPicture; OlePicture: IPictureDisp); Beschreibung In OLE werden Bilder per Konvention als Automatisierungsobjekte implementiert, in denen die Eigenschaften des Bildes enthalten sind. Diese Prozedur verbindet ein OLE-Bildobjekt (Parameter OlePicture) mit einem nativen VCL-Bild von Delphi (Parameter Picture). Dadurch kann sowohl von OLE- als auch von Delphi-Programmen auf das Bild zugegriffen werden. Das TPicture-Objekt wird mit den Eigenschaften des Parameters OlePicture initialisiert. Rufen Sie SetOlePicture zur Implementierung einer Automatisierungsmethode auf, die ein OLE-Bild als Parameter übernimmt und dieses Bild als natives TPicture-Objekt weitergeben muß. Frei aus der Delhi-Hilfe kopiert |
Re: TImage speichern
Zitat:
(In der Unit AxCtrls) Zum Thema: Ich schau gleich kurz was da beim Speichern für ein Format rauskommt. Was ist denn doc.Thumbnail? |
Re: TImage speichern
doc.Thumbnail ist vom Typ:
property Thumbnail: IPictureDisp Ist eine DateiVorschau von Autodesk Inventor. Ich dachte es ist .bmp oder .wmf scheint es aber doch nicht zu sein. |
Re: TImage speichern
Zitat:
EDIT: Müsste doch aber gehen das Canvas des Images in ein neues TBitmap zu kopieren und dieses dann zu speichern? |
Re: TImage speichern
wenn ich ein weitere TImage (Image1) plaziere, kann ich mit
Image1.Picture.Graphic:= Image.Picture.Graphic; Image1.Picture.Graphic.SaveToFile('c:\test.jpg'); (so auch in der Delphi -Hilfe drein) das Bild kopieren. Es wird am Bildschirm korrekt angezeigt test.jpg wird auch erzeugt, ist auch 96 kB groß kann aber mit keinem Bildbetrachter angeschaut werden -> ungültiges Format |
Re: TImage speichern
Gehts denn so:
Delphi-Quellcode:
var
bmp: Tbitmap; begin bmp := TBitmap.Create; try bmp.Width := Image1.Width; bmp.Height := Image1.Height; bmp.Canvas.Draw(0, 0, Image1.Picture.Graphic); bmp.SaveToFile('D:\test.bmp'); finally bmp.Free; end; |
Re: TImage speichern
Ja, so geht es.
Vielen Dank. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz