拡張メタファイル (.emf)
[MS-EMF]:Enhanced 標準Enhanced Metafile (EMF) は、Windows オペレーティング システム全体での高忠実度な印刷およびアプリケーション間のクリップボード交換用に設計された、Microsoft の 32 ビット ベクターおよびラスター グラフィックス コンテナです。
EMF を SVG に変換
無料のブラウザ内 EMF から SVG へのコンバーター。お使いのデバイスでファイルを即座に変換します。
調査とメタデータ
オペレーティングシステムやファイル解析ツールは、先頭のバイナリ列を検査してEMFファイルを識別します:
バイトレベルのヘッダーシグネチャ (マジックバイト)
オペレーティングシステムやファイル解析ツールは、先頭のバイナリ列を検査してEMFファイルを識別します:
16進数シグネチャ(オフセット0):
01 00 00 00 28 00 00 00ASCII表現: ....(... (offset 40: ' EMF')
標準化: [MS-EMF]:Enhanced Metafile形式仕様
技術仕様
| コンテナアーキテクチャ | ENHMETA_HEADERとEMR_EOFで区切られた32ビットGDI描画レコード構造の列 |
| 圧縮 | 非圧縮の描画コマンド。PNG/JPEGラスターレコードを埋め込むことも可能 |
| バイトエンディアン | リトルエンディアン(Intel x86) |
| 色空間 | デバイス依存RGB, sRGBカラー情報 |
| チャンネルと構造 | ベクター描画操作(パス、フォント、ペン、ブラシ)と24/32ビットのラスタービットマップ |
| 最大寸法 | 仮想デバイスの範囲を0.01ミリメートル単位で指定 |
| 透過性 | アルファブレンドのラスタ操作(EMR_ALPHABLEND)と、ペン/ブラシの透明マスク |
| ストリーミングとプログレッシブ | レコードを順次再生し、GDIデバイスコンテキストへ直接描画 |
技術比較表:EMFと競合製品
| 技術属性 | EMF (現在) | WMF | SVG | |
|---|---|---|---|---|
| ビット アーキテクチャ | 32 ビット座標空間 (Windows NT 以降) | 16 ビット座標空間 (Windows 3.x) | W3C Web 標準 | ISO 32000 ドキュメント標準 |
| クロスプラットフォーム サポート | Windows 中心。Mac/Linux ではエミュレーションが必要 | レガシー Windows のみ | 広く使われている Web 標準ですが、対応状況はアプリやプラットフォームによって異なります | 多くのプラットフォームで対応していますが、表示はビューアーによって異なります |
| 最新の Web 表示 | SVG/PNG への変換が必要 | SVG/PNG への変換が必要 | 多くの最新ブラウザーでサポートされています | PDF ビューア プラグインが必要 |
| Office 統合 | 一部のWordやPowerPointのワークフローでベクター貼り付けに対応 | レガシー Office サポート | 最新の Office 365 でサポート | 添付ファイル / ドキュメントとしてインポート |
一般的な破損モードと16進数リカバリガイド
EMF グラフィックがレンダリングされるべき場所に、赤い「X」のボックスが表示される。
根本原因: EMR_EOF(ファイルの終わり)レコードが欠落しているか途切れているため、GDI の再生が中断されている。
復旧: File2File.app Metafile Converter を使用してメタファイル ストリームの境界を修復するか、SVG に変換する。
セキュリティ分析とパーサー攻撃ベクトル
Windows GDI における EMF の処理は、信頼されていない Office ドキュメント内にある不正なレコード長フィールドを介した攻撃ベクターとして歴史的に機能してきました。
既知の攻撃ベクター
- リモート コード実行につながる EMR_STRETCHBLT レコード長の整数オーバーフロー。
- 破損した GDI ペンおよびブラシのカラー テーブルを解析する際のバッファ超過読み取り。
- レガシーな GDI レンダリング ルーチン内のフォント記述子レコードにおけるヒープ破損。
防御的ベストプラクティス: サンドボックス化されたWebAssembly実行環境で、EMFファイルをSVGまたはPNGにトランスコードします。
歴史的背景とマイルストーン
主なメリット
- 解像度に依存しない印刷: ベクター形状とタイポグラフィのアウトラインが、あらゆるプリンターの DPI に合わせて綺麗に拡大縮小されます。
- Microsoft Officeを含む一部のWindowsアプリで、クリップボードや文書の交換に使われるグラフィック形式の一つです。
- 編集可能なベクター コールアウトや線画と組み合わされた、埋め込みの高解像度ラスター画像をサポートしています。
技術的な制限とデメリット
- Microsoft Windows GDI グラフィックス アーキテクチャに深く結びついており、クロスプラットフォームでのレンダリングが複雑になります。
- 現代の SVG に見られるような、最新の CSS スタイル、フィルター、アニメーション機能が不足しています。
- 古いオペレーティング システムにおけるレガシーな EMF レンダリング エンジンは、歴史的にパーサーの脆弱性に悩まされてきました。
興味深い技術トリビア
- 有効なすべての EMF ファイルの 40 バイト目には、ASCII 文字のシグネチャ「 EMF」(0x20 0x45 0x4D 0x46)が含まれています。
- Windows プリント スプーラーは、プリンター ドライバーに生のコマンドを送信する背後で、ドキュメントを EMF ファイルに変換します。
- EMF は、デバイス ピクセルと 1 ミリメートルの 100 分の 1 という 2 つの座標系で同時に寸法を測定します。
よくある技術的な質問
WMFとEMFの違いは何ですか?
WMFはWindows 3.1時代の古い16ビット形式ですが、EMFは現在の32ビット後継形式であり、優れた座標精度と拡張されたグラフィックスコマンドを備えています。
EMFファイルをSVGに変換できますか?
はい。File2File.appを使用すると、EMFメタファイルのベクターレコードを、Webやデザイン用途に適したすっきりしたSVGファイルに直接変換できます。
なぜMicrosoft OfficeはEMFを使用するのですか?
Officeの一部のクリップボード処理では、ベクター図形やテキストを保持するためにEMFが使われますが、動作はアプリ、バージョン、内容によって異なります。