2012-03-12 14 views
4

私はWPFアプリケーションで作業しており、実際のサイズで複数のページのTIFFを表示することができる必要があります。私は別のStackOverflowスレッドから持っているコードは、実際のサイズでそれらのいくつかを表示するために素晴らしい仕事をしていますが、約1700 x 800の新しいスキャンTIFFファイルは約600 x 400に表示されます。Tiff画像はWPFで実際のサイズを表示していません画像コントロール

私は '達成しようとしているのは、基本的にWindowsフォトビューアーがイメージを表示する方法のコピーです。それらを画面に合わせるか、ボタンを押すか、必要に応じてスクロールバーで実際のサイズにズームします。私は2つのtiffsを持っています。 1はJPEGがmspaintからtiffとして保存され、もう1つ(2)は古いスキャンされた文書です。 1は180dpi、32ビット深度、LZW圧縮、2解像度単位で、デジタルカメラで撮影されました。 2は200dpi、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>

答えて

2

WPFは、アカウントへの画像の解像度を取ります。 2つの異なるイメージがある場合は、両方とも800x600ピクセル、一方は300dpi、もう1つは200dpiです。これらの2つのイメージは、WPFアプリケーションで異なるサイズとして表示されます。

この理由のいくつかはhereです。
Scott Hanselmanもこの問題について少し戸口を持っていますhere

+0

私はDPIでいくつかの計算を行いましたが、WPFは「デバイスに依存しないピクセルを1/96インチ」として使用しているように見えます。したがって、DPIが高くなると小さく表示されます。 –

関連する問題