1
我有一個應該產生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讀入一幀,從而丟失了幀信息?
如果有可能,我可以另一種參數添加到我的方法簽名,就像這樣:
public Image ConvertBitmapSourceToImage(BitmapSource input, int frame)
{
///[..]
}
什麼想法?
在此先感謝!
我不清楚你的多幅圖像應該如何顯示,甚至是「導航」。如果他們並排躺在一起,或者彼此躺在一起,用鼠標點擊它們即可。請提供更多關於如何使用這種多圖像控制的信息。 – Clemens
對不起,這可能沒有很好的制定。我打算僅顯示當前的頁面,導航只會增加或減少PageSelection。所以,當導航向前移動時,我想要顯示圖像的第二幀而不是第一幀。圖像類支持多幀,但我只能輸入一個BitmapSource(從多頁Tiff文件生成)。 –
[MSDN](http://msdn.microsoft.com/zh-cn/library/system.windows.controls.image.aspx)說'顯示多幀圖像時,只顯示第一幀。 Image控件不支持多幀圖像的動畫,所以你最好在每幀創建一個圖像(我想把它們放在不同的頁面上)。 – Clemens