在 Metro Win 8 应用程序中打开多页 TIF 文件作为图像源
本文关键字:文件 TIF 图像 Win Metro 应用程序 | 更新日期: 2023-09-27 18:31:40
可以很容易地在
地铁应用程序中将TiF(或TIFF)文件设置为图像源...
Image imm = new Image();
imm.Source = new BitmapImage(new Uri(filetiff_path));
问题是图像中显示的内容始终是 Tif 的第一页,我无法将内容设置为源文件的另一页。
在WPF应用程序中,我可以使用System.Windows.Media.Imaging.TiffBitmapDecoder类来做到这一点,它似乎在Metro Win 8应用程序中不存在。
Stream imageStreamSource = new FileStream(filetiff_path, FileMode.Open, FileAccess.Read, FileShare.Read);
TiffBitmapDecoder decoder = new TiffBitmapDecoder(imageStreamSource, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default);
BitmapSource bitmapSource = decoder.Frames[indexPage];
其中索引页面是我想查看的页面编号。
有人知道类似的解决方案吗?
我对 TiffBitmapDecoder 和 Metro WPF 都没有任何经验,但我之前在 WPF 中使用过类似的东西,如下所示:
using (System.Drawing.Image imageFile = System.Drawing.Image.FromFile("temp.tif"))
{
System.Drawing.Imaging.FrameDimension frameDimensions = new System.Drawing.Imaging.FrameDimension(imageFile.FrameDimensionsList[0]);
imageFile.SelectActiveFrame(frameDimensions, indexPage);
using (System.Drawing.Bitmap newImage = new System.Drawing.Bitmap(imageFile.Size.Width, imageFile.Size.Height))
{
using (System.Drawing.Graphics gr = System.Drawing.Graphics.FromImage(newImage))
{
gr.Clear(System.Drawing.Color.White);
gr.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
gr.DrawImage(imageFile, new System.Drawing.Rectangle(new System.Drawing.Point(0, 0), imageFile.Size));
}
//do whatever with the newImage bitmap
}
}
SelectActiveFrame是你需要的点,所以你可以尝试一下,如果它也适合你......