![]() |
WMF in FMX benutzen
Hallo,
bisher habe ich unter VCL WMF-Grafiken benutzt, um masstabsgerechte Bilder zu zeichnen. (DXF in WMF konvertiert). Nun würde ich das selbe gerne unter Firemonkey versuchen. In der Hilfe finde ich nun was über einen TBitmapCodecManager, der anscheinend unter Windows auch WMF-Formate kennen soll, aber wie ich das ganze benutzen soll, ist mir schleierhaft, und bisher habe ich keine Beispiele gefunden. Wer kann mir da vielleicht auf die Sprünge helfen. Was ich zusammengebastelt habe, funktioniert zwar mit png, aber nicht mit wmf (wirft keinen Fehler, zeigt aber auch nix an).
Code:
rocedure TForm11.FormCreate(Sender: TObject);
var surf: TBitmapsurface; begin surf:=TBitmapSurface.Create; TBitmapCodecManager.LoadFromFile('E:\Media\logo.wmf',surf) ; // TBitmapCodecManager.LoadFromFile('E:\Media\logo.png',surf) ; Image1.Bitmap.assign(surf); end; |
AW: WMF in FMX benutzen
Hast Du es schonmal über ein TMultiResBitmap probiert ?
![]() |
AW: WMF in FMX benutzen
Wäre es nicht ratsam, direkt von WMF/EMF(+) auf SVG zu wechseln?
Siehe: ![]() |
AW: WMF in FMX benutzen
Ich habe auch davon jetzt verschiedene Varianten durchprobiert, png sind ok, wmf nicht.
Code:
procedure TForm11.FormCreate(Sender: TObject);
var surf: TBitmapsurface; bmp: TBitmap; mr: TFixedMultiResBitmap; begin surf := TBitmapsurface.Create; TBitmapCodecManager.LoadFromFile('E:\Media\knebelschalter_links.wmf', surf); // TBitmapCodecManager.LoadFromFile('E:\Media\logo.png',surf) ; Image1.Bitmap.assign(surf); if Image1.Multiresbitmap.Items[Image1.Multiresbitmap.Count - 1].Bitmap.isempty = false then Image1.Multiresbitmap.Add; // Image1.MultiResBitmap.Items[Image1.MultiResBitmap.Count-1].Bitmap.loadfromfile ('E:\Media\motor_gruen.wmf'); // Image1.MultiResBitmap.Items[Image1.MultiResBitmap.Count-1].Bitmap.assign (surf); mr := TFixedMultiResBitmap.Create(self); bmp := mr[0].CreateBitmap('E:\Media\logo.png'); mr[0].Bitmap.assign(bmp); bmp := Image1.Multiresbitmap[0].CreateBitmap('E:\Media\knebelschalter_links.wmf'); Image1.Multiresbitmap[0].Bitmap.assign(bmp); end; |
AW: WMF in FMX benutzen
WMF und EMF enthalten einfach eine Liste von GDI-API-Calls auf einen Gerätekontext (in Delphi als TCanvas, TPrinter und TMetafileCanvas bezeichnet). Ohne Windows-API kein GDI und ohne GDI kein WMF und EMF.
|
AW: WMF in FMX benutzen
SVG als mögliche Alternative habe ich auch schon ins Visier genommen, mit dem, was Delphi schon drin hat, gehts aber wohl nocht nicht, glaube ich.
Ich habe ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:16 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-2025 by Thomas Breitkreuz