gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 19:46:04 26 4
gpt4 key购买 nike

我一直在开发 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com