Hallo zusammen!
Ich möchte mit meiner Anwendung Metafiles aus der Windows Zwischenablage entgegen nehmen.
Das klappt auch generell sehr gut, allerdings geht mir die Ausflösung dabei verloren.
- Ich lege ein 128 x 96 Pixel großes Bitmap in MSPaint an. (MSPaint benutzt standardmäßig eine Auflösung von 96 DPI)
--> Das entspricht also ca. der Größe: 33,95 x 25.46 mm
- Ich wähle "Alles markieren" und kopiere das Bild in die Zwischenablage
- Meine Anwendung erkennt dieses nun und speichert das Metafile auf der Festplatte ab:
Code:
procedure ClipboardMetafileTest;
var
MetaFile: TMetaFile;
begin
if TNTClipboard.HasFormat(CF_ENHMETAFILE) then
begin
MetaFile := TMetaFile.Create;
TNTClipboard.Open;
try
{ Parameters get ignored anyway }
MetaFile.LoadFromClipboardFormat(CF_ENHMETAFILE, 0, CF_PALETTE);
Report(Format('MMWidth=%d MMHeight=%d', [MetaFile.MMWidth, MetaFile.MMHeight]));
MetaFile.SaveToFile('C:\Users\Andi\Documents\MetaFileTests\Test6.emf');
finally
TNTClipboard.Close;
FreeAndNil(MetaFile);
end;
end;
end;
- Wenn ich das gespeicherte EMF nun wieder in Paint lade, so ist es nur noch 97 * 69 Pixel groß. Die Reduktion entspricht dem Faktor 1.33 was ziemlich genau 96 / 72 (DPI) ist.
Kurzum: Weiß jemand ob das "normal" ist oder gibt es eine Möglichkeit auf die Auflösung des gespeicherten Metafiles einfluß zu nehmen oder sind Metafiles grundsätzlich in 72 DPI?