![]() |
Bitmap in TMetafile ausgeben Windows 7
Hallo
Ich verwende diesen Code, unter Windwos XP funktioniert es einwandfrei bei Windows 7 ist die metafile- Datei nicht korrekt. Am Bildschirm wird sauber das Bitmap ausgegeben, in der wmf Datei sieht man nur die Linie. (Ich habs mit emf probiert da sieht es besser aus, weis jemand warum ?)
Delphi-Quellcode:
mfg
var MyMetafile : TMetafile;
Bitmap : TBitmap; myc : TMetafileCanvas ; begin MyMetafile := TMetafile.Create; Bitmap := TBitmap.create; Bitmap.LoadFromFile('test.bmp'); myc := TMetafileCanvas.Create(MyMetafile, 0); myc.LineTo(100, 100); myc.Draw(0, 0, Bitmap); myc.Free; MyMetafile.SaveToFile('c:\temp\mist.wmf'); self.Canvas.StretchDraw(rect(0,0,MyMetafile.Width,MyMetafile.Height),MyMetafile); Bitmap.free; MyMetafile.free; Reinhold |
AW: Bitmap in TMetafile ausgeben Windows 7
Wieso StretchDraw? Was soll hier gestretcht werden?
|
AW: Bitmap in TMetafile ausgeben Windows 7
Zitat:
Aber warum keine Delphi-Tags benutzt? |
AW: Bitmap in TMetafile ausgeben Windows 7
Hallo
Zitat:
Diesen Hinweis verstehe ich nicht ganz, was kann ich anders oder besser machen? Ich verwende die wmf Datei dann später weiter und so ist diese nicht zu gebrauchen. mfg Reinhold |
AW: Bitmap in TMetafile ausgeben Windows 7
Zitat:
|
AW: Bitmap in TMetafile ausgeben Windows 7
Oder zur Not händisch mit
Code:
[delphi]Code[/delphi]
|
AW: Bitmap in TMetafile ausgeben Windows 7
ich hab mal deinen Code kopiert und ihn so laufen lassen, unter WIN7, das dabei erzeugte WMF entspricht exakt dem BMP
vielleicht hilft dir diese kleine Änderung
Delphi-Quellcode:
var MyMetafile : TMetafile;
Bitmap : TBitmap; myc : TMetafileCanvas ; begin MyMetafile := TMetafile.Create; Bitmap := TBitmap.create; Bitmap.LoadFromFile('test.bmp'); myc := TMetafileCanvas.Create(MyMetafile, 0); myc.Height := Bitmap.Height; myc.Width := Bitmap.Width; myc.Draw(0, 0, Bitmap); myc.Free; MyMetafile.SaveToFile('c:\temp\mist.wmf'); self.Canvas.StretchDraw(rect(0,0,100,100),MyMetafile); Bitmap.free; MyMetafile.free; |
AW: Bitmap in TMetafile ausgeben Windows 7
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo
Erst mal danke für das du es ausprobiert hast, aber Delphi akteptiert den Code so nicht, TMetafileCanvas akzeptiert kein Height. Ich habe die gleiche Exe mit dem gleichen Bitmap (nur 1 Pixel in Schwarz) auf einen XP und einen Windows7(32 Bit) laufen lassen und die wmf Dateien im Hex Editor verglichen ==> Da sind mehr Unterschiede als ich erwartet habe.(siehe Anhang). (MSPaint zeigt bei der xp Version das eine Pixel einwandfrei an bei der win7 version nicht) Ich verstehe erlich gesagt die Welt nicht mehr, habe im Internet niemanden mit dem gleichen Problem gefunden. Ich dachte das sei eine Grundfunktion von Delphi/Windows und sollte funktioniern. Ich habe mir auch die Spezikation der WMF Datei geladen aber da stöße ich an meine Grenzen. mfg Reinhold Zitat:
|
AW: Bitmap in TMetafile ausgeben Windows 7
Liste der Anhänge anzeigen (Anzahl: 1)
folgender Code liefert bei mir unter WIN7 D2010 das erwartete Ergebnis
Delphi-Quellcode:
var
MyMetafile: TMetafile; Bitmap: TBitmap; myc: TMetafileCanvas; begin MyMetafile := TMetafile.Create; Bitmap := TBitmap.Create; try MyMetafile.Width := 200; MyMetafile.Height := 200; Bitmap.Width := 100; Bitmap.Height := 100; Bitmap.Canvas.pen.Color := clRed; Bitmap.Canvas.pen.Width := 2; Bitmap.Canvas.Ellipse(0, 0, 99, 99); Bitmap.PixelFormat := pf32bit; myc := TMetafileCanvas.Create(MyMetafile, 0); try myc.pen.Color := clBlue; myc.Ellipse(0, 0, 199, 199); myc.Draw(0, 0, Bitmap); finally myc.Free; end; MyMetafile.SaveToFile('c:\temp\mist.wmf'); self.Canvas.Draw(0, 0, MyMetafile); finally Bitmap.Free; MyMetafile.Free; end; end; |
AW: Bitmap in TMetafile ausgeben Windows 7
da hab ich vertan mit myc und mymetafile, sorry
so sollte es sein
Delphi-Quellcode:
zumindest funzt es bei mir so ohne Probleme
MyMetafile.Height := Bitmap.Height;
MyMetafile.Width := Bitmap.Width; myc := TMetafileCanvas.Create(MyMetafile, 0); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:50 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