
A mellékelt példaprogram megnyitása előtt a WMFBMP.pas-ban lévő komponenst telepítenie kell a Delphi alá. Ehhez válassza a Component - Install Component menüpontot.
A komponens két tulajdonsággal és két függvénnyel rendelkezik. A BMPFileName és WMFFileName tulajdonságokban kell megadnunk a BMP és WMF fájlok nevét. Amelyik fájlból konvertálunk, annak természetesen létező állománynak kell lennie. A konvertált kép pedig felveszi azt a nevet, amelyet megadtunk számára.
Miután az állományok nevét megadtuk, a konvertálást egy egyszerű függvényhívással végrehajthatjuk. A BMP-WMF konverziót a ConvertBmpToWmf függvénnyel, míg a WMF-BMP konverziót a ConvertWmfToBmp függvénnyel hajthatjuk végre.
function ConvertBmpToWmf: Boolean;
function ConvertWmfToBmp: Boolean;
A függvényeknek nincs bemeneti paraméterük. Ha a konvertálás sikeres volt, akkor visszatérési értékük igaz, ellenkező esetben hamis.
A komponens elkészítése
Komponensünket a TComponent osztályból származtatjuk. Két tulajdonságra van szükségünk. Ezeken keresztül lehet megadni a BMP és WMF fájlok nevét. Ez a két tulajdonság a BMPFileName és a WMFFileName.
A ConvertBmpToWmf függvény
function TWMFBMP.ConvertBmpToWmf: Boolean;
var
WMF: TMetaFile;
WMFCanvas: TMetaFileCanvas;
BMP: TBitmap;
A konvertálás három lépcsőn keresztül zajlik.
BMP.LoadFromFile(FBMPFileName);
Először beolvassuk a BMP állományt a BMP objektumba. Ennek megfelelően beállítjuk a WMF objektum méreteit.
A TMetafileCanvas osztály Draw metódusával a TBitmap objektumból átmásoljuk a képet a WMF objektumba.
WMF.SaveToFile(FWMFFileName);
Ezután nincs más dolgunk, mint elmenteni az átmásolt képet a WMFFileName tulajdonságban megadott állományba.
A ConvertWmfToBmp függvény
Ez eljárás itt is ugyanaz, mint a BMP-WMF átalakításnál, csak fordított. A WMF objektum LoadFromFile metódusával beolvassuk a képet. A beolvasott kép méreteinek megfelelően beállítjuk a BMP objektum méreteit. A TBitmap osztály Canvas-ával átmásoljuk a képet, majd elmentjük a BMPFileName-ben megadott állományba.