我一直在研究
WPF应用程序,需要能够以实际大小显示多页tiff并适合屏幕.我从另一个StackOverflow线程获得的代码非常适合以实际大小显示其中的一些,但是新扫描的大约1700 x 800的tiff文件显示为大约600 x 400.
我想要实现的基本上是Windows Photo Viewer如何显示图像的副本.您可以看到它们适合屏幕,或按一个按钮,如果需要,它会使用滚动条缩放到实际大小.我有2个tiffs工作. 1是从mspaint保存为tiff的JPEG,另一个(2)是较旧的扫描文档. 1是180dpi,32位深度,LZW压缩和2分辨率单位,它是用数码相机拍摄的. 2是200 dpi,1位深度,2个分辨率单位,CCITT t.6压缩,它是一个扫描文件.不起作用的文件是300dpi,但与#2相同.
这是我用来显示图像的代码.
// Open a Stream and decode a TIFF image
Stream imageStreamSource = new FileStream("C:\\Users\\cblair\\Documents\\Visual Studio 2010\\Projects\\WpfApplication1\\WpfApplication1\\flowers.tif", FileMode.Open, FileAccess.Read, FileShare.Read);
TiffBitmapDecoder decoder = new TiffBitmapDecoder(imageStreamSource, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default);
BitmapSource bitmapSource = decoder.Frames[0];
// Draw the Image
myImage.Source = bitmapSource;
和XML
< ScrollViewer HorizontalScrollBarVisibility =“auto”>
< Viewbox控件>
< Image x:Name =“myImage”/>
< / Viewbox控件>
< /&的ScrollViewer GT;
最佳答案 WPF考虑了图像的dpi.如果您有2个不同的图像,两者都是800×600像素,一个是300 dpi,另一个是200 dpi;这两个图像将在WPF应用程序中显示为不同的大小.