WMFはWindowsMetaFileの略称ですが、EMFは拡張メタファイルと呼ばれる改良版です。これらのメタファイルは、印刷目的で頻繁に使用されます。要件に応じて、EMFまたはWMFをSVG画像ファイル形式に簡単に変換できます。これらのファイル変換の詳細については、次のセクションを見ていきましょう。
- WMFまたはEMFからSVGへのコンバーター-APIのインストール
- C#でプログラム的にWMFをSVGに変換する
- C#を使用してプログラムでEMFをSVGに変換する
- C#を使用したEMFからSVGへの変換中にテキストを図形として保存する
WMFまたはEMFからSVGへのコンバーター-APIのインストール
Aspose.Imaging for .NET APIを使用すると、WMF、EMF、およびその他のいくつかのサポートされているファイル形式を作成、操作、または編集できます。 APIは、ダウンロードセクションからダウンロードするか、NuGetギャラリーから次のインストールコマンドを使用して簡単に構成できます。
PM> Install-Package Aspose.Imaging
C#でプログラム的にWMFをSVGに変換する
.NETベースのアプリケーションでC#言語を使用して、プログラムでWMFをSVGイメージに変換できます。 WMFからSVGイメージには、次の手順を使用できます。
- 入力WMFファイルをロードします
- WmfRasterizationOptionsクラスオブジェクトを初期化します
- 出力SVG画像を保存する
以下のコードスニペットは、C#を使用してプログラムでWMFをSVGイメージに変換する方法を詳しく説明しています。
// 入力WMFファイルへのパス
string sourcePath = dataDir + @"TextHintTest.wmf";
// SVG画像を出力するためのパス
string destPath = dataDir + @"WMF_out.svg";
// 入力WMFファイルをロードします
using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Load(sourcePath))
{
// WmfRasterizationOptionsインスタンスを初期化します
WmfRasterizationOptions wmfRasterizationOptions = new WmfRasterizationOptions();
wmfRasterizationOptions.BackgroundColor = Aspose.Imaging.Color.White;
wmfRasterizationOptions.PageHeight = image.Height;
wmfRasterizationOptions.PageWidth = image.Width;
// 出力SVG画像を保存する
image.Save(destPath, new SvgOptions() { VectorRasterizationOptions = wmfRasterizationOptions });
}
C#を使用してプログラムでEMFをSVGに変換する
EMFファイルはSVGファイル形式に効率的に変換できます。 EMF変換を実行するには、以下の手順に従ってください。
- 入力EMFファイルをロードします
- EmfRasterizationOptionsクラスオブジェクトを初期化します
- さまざまなプロパティを設定する
- 出力SVG画像を保存する
次のコードは、これらの手順に基づいています。 C#を使用してプログラムでEMFをSVGに変換する方法を詳しく説明します。
// 入力EMFファイルへのパス
string sourcePath = dataDir + @"test.emf";
// 出力SVG画像のパス
string destPath = dataDir + @"EMF_out.svg";
// 入力EMFファイルをロードします
using (Image image = Image.Load(sourcePath))
{
// EmfRasterizationOptionsクラスオブジェクトを初期化します
EmfRasterizationOptions emfRasterizationOptions = new EmfRasterizationOptions();
emfRasterizationOptions.BackgroundColor = Color.White;
emfRasterizationOptions.PageWidth = image.Width;
emfRasterizationOptions.PageHeight = image.Height;
// 出力SVG画像を保存する
image.Save(destPath, new SvgOptions() { VectorRasterizationOptions = emfRasterizationOptions });
}
C#を使用したEMFからSVGへの変換中にテキストを図形として保存する
APIを使用すると、アプリケーションでさまざまなユースケースのファイル形式を処理できます。ファイル形式の基本的な詳細を考慮せずに、いくつかのAPI呼び出しを行う必要があります。 APIは、ファイル変換プロセスを制御するための多くのプロパティをサポートしています。たとえば、EMFからSVGへの画像レンダリング中にテキストを図形として保存できます。以下の手順に従ってください。
- 入力EMFファイルをロードします
- EmfRasterizationOptionsインスタンスを指定します
- テキストを図形としてレンダリングするようにbooleanプロパティを設定します
- 出力SVGファイルを保存します
以下のコードは、EMFをC#でSVG画像ファイルに変換するときにテキストをシェイプとしてレンダリングする方法を説明しています。
// 入力EMFファイルをロードします
using (Image image = Image.Load(dataDir + "Test.emf"))
{
// EmfRasterizationOptionsインスタンスを指定します
EmfRasterizationOptions emfRasterizationOptions = new EmfRasterizationOptions();
emfRasterizationOptions.BackgroundColor = Color.White;
emfRasterizationOptions.PageWidth = image.Width;
emfRasterizationOptions.PageHeight = image.Height;
// 出力SVGファイルを保存します
image.Save(dataDir + "TextAsShapes_out.svg", new SvgOptions
{
// テキストを図形としてレンダリングするブールプロパティを設定します
VectorRasterizationOptions = emfRasterizationOptions,
TextAsShapes = true
});
}
結論
C#を使用してプログラムでEMFおよびWMFファイルをSVGイメージファイルに変換またはエクスポートする方法を学習しました。 ExamplesProjectまたはAPIDocumentationを参照すると、機能をさらに詳しく調べることができます。 無料サポートフォーラムでいつでもご意見をお寄せいただければ幸いです。