System.Drawing.Image インスタンスを生成するメソッドがここにあります。次の前提条件を考慮してください。
- メソッド パラメータとして BitmapSource を取得します
- 以下に、BitmapSource から Image への変換を行うコードを示します。
変換:
public Image ConvertBitmapSourceToImage(BitmapSource input)
{
MemoryStream transportStream = new MemoryStream();
BitmapEncoder enc = new BmpBitmapEncoder();
enc.Frames.Add(BitmapFrame.Create(input));
enc.Save(transportStream);
transportStream.Seek(0, SeekOrigin.Begin);
return Image.FromStream(transportStream);
}
BitmapSource が Multipage Tif ファイルから作成されたとします。私がする必要があるのは、n 番目のページをコードで使用できるようにすることです。BitmapSource クラスはこれをサポートしていないので、入力から最初のフレーム以外を取得する方法を知っていますか? それとも、BitmapSource は Tif 全体を 1 つのフレームとして読み込み、フレーミング情報を失いますか?
可能であれば、次のようにメソッド シグネチャに別のパラメーターを追加できます。
public Image ConvertBitmapSourceToImage(BitmapSource input, int frame)
{
///[..]
}
何か案は?
前もって感謝します!