[.NETコントロール] WMFファイルの読み込みが遅い場合があります。

文書番号 : 32804     文書種別 : 使用方法     登録日 : 2012/05/09     最終更新日 : 2014/09/01
文書を印刷する
対象製品
LEADTOOLS 17.5J Document Imaging
詳細
LEADTOOLSでは、画像データはすべてラスタ画像として取り扱います。そのため、WMFのファイル情報に含まれる高さ、幅の設定値が大きな場合には、サイズの大きなラスタ画像をメモリ上にロードするため、処理に時間がかかります。

これを回避する方法として、WMFファイルをロードする前に解像度を設定してください。
以下のサンプルプログラムでは、アスペクト比を維持したまま、画像をデスティネーション長方形に収めるように解像度を設定します。

サンプルコード(VB.NET)
Dim codecs As RasterCodecs = New RasterCodecs()

Dim FileInfo As CodecsImageInfo
FileInfo = codecs.GetInformation(filName, False)

Dim fWidth As Single = RasterImageViewer1.Width / FileInfo.Width
Dim fHeight As Single = RasterImageViewer1.Height / FileInfo.Height
Dim ratio As Single = IIf(fWidth > fHeight, fHeight, fWidth)

codecs.Options.Wmf.Load.XResolution = FileInfo.XResolution * ratio    '水平方向の解像度
codecs.Options.Wmf.Load.YResolution = FileInfo.YResolution * ratio    '垂直方向の解像度

RasterImageViewer1.Image = codecs.Load(filName)    'ビューアにイメージファイルをロード

サンプルコード(C#)
RasterCodecs codecs = new RasterCodecs();

CodecsImageInfo FileInfo;
FileInfo = codecs.GetInformation(filName, false);

Single fWidth = rasterImageViewer1.Width / FileInfo.Width;
Single fHeight = rasterImageViewer1.Height / FileInfo.Height;
Single ratio = fWidth > fHeight ? fHeight : fWidth;

codecs.Options.Wmf.Load.XResolution = (int)FileInfo.XResolution * (int)ratio;    //水平方向の解像度
codecs.Options.Wmf.Load.YResolution = (int)FileInfo.YResolution * (int)ratio;    //垂直方向の解像度

rasterImageViewer1.Image = codecs.Load(filName);    //ビューアにイメージファイルをロード
関連情報
キーワード
HowTo 問題 読み込みと保存 メモリ・遅い