ここには、System.Drawing.Imageインスタンスを生成するはずのメソッドがあります。次prerequesitesを考えてみましょう:BitmapSourceをすべてのフレームを保持するイメージに変換する
- 私はあなたがイメージにしたBitmapSourceから 変換を行うコードを見つけるには、下記の方法パラメータ
- としたBitmapSourceを取得します。
変換:
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は、複数ページのTIFファイルから作成されている想像してみてください。私がする必要があるのは、n番目のページをコードで利用できるようにすることです。 BitmapSourceクラスはこれをサポートしていないので、入力から最初のフレーム以外のものを取得する方法を知っていますか?あるいは、BitmapSourceはTif全体を1つのフレームとして読み込み、フレーミング情報を失いますか?
ことが可能であったならば、私はそうのように、私のメソッドシグネチャに別のパラメータを追加することができます。
public Image ConvertBitmapSourceToImage(BitmapSource input, int frame)
{
///[..]
}
任意のアイデア?
ありがとうございます!
あなたの複数の画像をどのように表示したり、ナビゲートしたりするべきかはわかりません。マウスをクリックするだけで、横に横たわっているか、お互いの上に横たわっていなければなりません。このようなマルチイメージコントロールの使い方について少し詳しい情報を提供してください。 – Clemens
申し訳ありませんが、それはおそらくよく策定されていませんでした。現在のページだけを表示するつもりです。ナビゲーションはPageSelectionを増減します。したがって、ナビゲーションが進むと、最初のフレームの代わりにイメージの2番目のフレームを表示します。イメージクラスはマルチフレームをサポートしていますが、入力として取得するのはBitmapSource(Multipage Tiffファイルから生成)だけです。 –
[MSDN](http://msdn.microsoft.com/en-us/library/system.windows.controls.image.aspx)には、「マルチフレームイメージを表示すると、最初のフレームのみが表示されます。マルチフレーム画像のアニメーションはImageコントロールではサポートされていません。フレームごとに1つのImageを作成する方が良いかもしれません。 – Clemens