Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Metafile Auflösung geht verloren? (https://www.delphipraxis.net/126072-metafile-aufloesung-geht-verloren.html)

flipdascript 17. Dez 2008 13:15


Metafile Auflösung geht verloren?
 
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?


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:24 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