AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TImage speichern

Ein Thema von Berni68 · begonnen am 11. Jul 2009 · letzter Beitrag vom 12. Jul 2009
Antwort Antwort
Berni68

Registriert seit: 9. Jan 2006
Ort: Villingen
162 Beiträge
 
Delphi XE5 Professional
 
#1

TImage speichern

  Alt 11. Jul 2009, 21:38
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:
Thumb: TPicture;
SetOlePicture(Thumb, doc.Thumbnail);

Image: TImage;
Image.Picture:= Thumb;
Funktioniert soweit.
Wenn ich jetzt das Bild speichere:
Image.Picture.SaveToFile('C:\xxx.bmp'); kann ich die Datei nicht wieder mit
Image.Picture.LoadFromfile('C:\xxx.bmp'); einlesen. Fehlermeldung: ungültiges Format.

Versuche mit
Delphi-Quellcode:
Image.Picture.Bitmap.SaveToFile('C:\xxx.bmp');
Image.Picture.Graphic.SaveToFile('C:\xxx.bmp');
Image.Picture.Metafile.SaveToFile('C:\xxx.wmf');
gehen auch nicht.
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?
Bernhard
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#2

Re: TImage speichern

  Alt 11. Jul 2009, 21:47
Zeig doch mal die SetOlePicture Procedure.
  Mit Zitat antworten Zitat
Berni68

Registriert seit: 9. Jan 2006
Ort: Villingen
162 Beiträge
 
Delphi XE5 Professional
 
#3

Re: TImage speichern

  Alt 11. Jul 2009, 21:52
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
Bernhard
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.332 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: TImage speichern

  Alt 11. Jul 2009, 21:54
Zitat von Andreas L.:
Zeig doch mal die SetOlePicture Procedure.
Wie meinst du das? Die ist bei Delphi dabei.
(In der Unit AxCtrls)

Zum Thema: Ich schau gleich kurz was da beim Speichern für ein Format rauskommt. Was ist denn doc.Thumbnail?
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Berni68

Registriert seit: 9. Jan 2006
Ort: Villingen
162 Beiträge
 
Delphi XE5 Professional
 
#5

Re: TImage speichern

  Alt 11. Jul 2009, 21:59
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.
Bernhard
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#6

Re: TImage speichern

  Alt 11. Jul 2009, 22:02
Zitat von jaenicke:
Zitat von Andreas L.:
Zeig doch mal die SetOlePicture Procedure.
Wie meinst du das? Die ist bei Delphi dabei.
(In der Unit AxCtrls)
Wusste ich nicht, dachte das wäre eine Eigenkreation...

EDIT: Müsste doch aber gehen das Canvas des Images in ein neues TBitmap zu kopieren und dieses dann zu speichern?
  Mit Zitat antworten Zitat
Berni68

Registriert seit: 9. Jan 2006
Ort: Villingen
162 Beiträge
 
Delphi XE5 Professional
 
#7

Re: TImage speichern

  Alt 11. Jul 2009, 22:20
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
Bernhard
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#8

Re: TImage speichern

  Alt 12. Jul 2009, 09:41
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;
  Mit Zitat antworten Zitat
Berni68

Registriert seit: 9. Jan 2006
Ort: Villingen
162 Beiträge
 
Delphi XE5 Professional
 
#9

Re: TImage speichern

  Alt 12. Jul 2009, 10:08
Ja, so geht es.
Vielen Dank.
Bernhard
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz