wpf - Tiff 图像未在 WPF 图像控件中显示实际大小

标签 wpf image tiff

我一直在开发 WPF 应用程序,需要能够以实际大小显示多页 tiff 并适合屏幕。我从另一个 StackOverflow 线程获得的代码非常适合以实际大小显示其中一些,但是大约 1700 x 800 的新扫描 tiff 文件显示为大约 600 x 400。

我想要实现的基本上是 Windows 照片查看器如何向您显示图像的副本。您可以看到它们适合屏幕,或者按一个按钮,如果需要,它会使用滚动条放大到实际大小。我有 2 个有效的 tiff。 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>

最佳答案

WPF 考虑了图像的 dpi。如果您有 2 张不同的图像,都为 800x600 像素,但一张为 300 dpi,另一张为 200 dpi;这两个图像将在 WPF 应用程序中显示为不同的大小。

给出了一些原因 here .
Scott Hanselman 在这个问题上也有一点模糊here .

关于wpf - Tiff 图像未在 WPF 图像控件中显示实际大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9672346/

相关文章:

c# - WPF ScrollViewer 调整大小的问题

android - 在 "select an action"菜单中添加 Android App

java - 如何在 Java 中显示 65687x70562 Tif 文件

seo - 谷歌索引的图像文件类型 : is TIFF part of it or not?

matlab - 了解 RAW 图像文件

c# - 动态设置TextBox文本

WPF 列表框和全选

c# - 如何获取 dataGrid1_BeginningEdit 事件中数据网格单元格的值?

iphone - 如何允许 iPhone 用户 "Move and Scale"已选择的照片

c# - 加载 JPEG : "A generic error occurred in GDI+." 时出错