簡體   English   中英

Delphi無法打開WMF文件?

[英]Delphi cannot open WMF file?

我正在使用Delphi XE3。 我嘗試使用以下代碼打開WMF文件:

    var
        Picture: TPicture;
    begin
        Picture := TPicture.Create();

        Picture.LoadFromFile('E:\temp\thumbnail.wmf');

        Picture.Free;
    end;    

但是我總是會得到無效的圖形異常。 我嘗試使用其他工具(例如ACDSee)打開wmf文件,並確認圖像已完成,確定。 為什么Delphi無法打開它。 我嘗試了不同版本的Delphi,但是都失敗了。

可以從以下網址下載wmf文件: https ://www.dropbox.com/s/wcqdma42xlra07p/thumbnail.wmf?dl = 0

謝謝

Delphi只能讀取以WMF可放置標題記錄開頭的可放置WMF圖元文件。 給定的文件不是可放置的WMF圖元文件。

TPicture默認使用VCL的TMetafile類加載WMF文件。 但是,正如Uwe的回答所述, TMetafile只能加載可放置的 WMF圖元文件1 ,而您的文件不是可放置的WMF圖元文件2

甚至是VCL的TWICImage類(它是Microsoft的WIC(Windows圖像組件)API的包裝程序,可以加載Windows支持的許多圖像格式)也無法加載文件,並且失敗的原因是操作系統本身,而不是VCL。 。 但是,WIC是可擴展的,因此您可以嘗試實現並注冊用於處理WMF文件的自定義解碼器。 MSDN記錄了圖元文件格式。

但是,WMF實際上是16位時代以來的傳統圖像格式。 如果您真的想使用圖元文件,則應改用EMF, TMetafile也支持。

1:可放置的WMF圖元文件包含一個額外的標頭,以描述應在GDI畫布上繪制圖像的XY坐標,以及每英寸用於縮放圖像的邏輯單位數。

2:您的文件將自己標識為MEMORYMETAFILE格式而不是DISKMETAFILE格式的不可放置圖元文件。 我想知道這是否與您的問題有關?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM