1

Web 上の多くの Web ページ、フォーラム、およびその他のリソースを検索しましたが、次の 2 行の単純なコードは今でも私を夢中にさせます。

Dim ImageFile As FileStream = File.Open("C:\Programowanie\Indeksowanie\01.tif", FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite)
ImageBox.Image = CType(Bitmap.FromStream(ImageFile), Bitmap)

Win 7 または 8 で実行すると、問題なく動作します。ピクチャ ボックスはフル 32 ビット カラーを表示します。Win XP で実行すると、画質が劇的に低下し (白黒のみ)、これは容認できません。回避策のアイデアはありますか? 複数ページのスキャンされたドキュメントを処理する必要があるため (ビジネス要件)、jpeg に変換できません。

4

1 に答える 1

0

最終的に私はそれを手に入れました。結果は私が期待した 100% ではありませんが、許容範囲であり、画面に表示される効果は以前よりもはるかに優れています。コードの一部を次に示します。

    Dim fs As FileStream = File.Open("C:\Programowanie\Indeksowanie\01.tif", FileMode.Open, FileAccess.Read)
    Dim bm As Bitmap = CType(Bitmap.FromStream(fs), Bitmap)
    Dim temp As New Bitmap(bm.Width, bm.Height)
    Dim g As Graphics = Graphics.FromImage(temp)
    Dim ScaledWidth As Integer = CInt(Math.Round((ImageBox.Height / bm.Height) * bm.Width))

    g.InterpolationMode = InterpolationMode.HighQualityBicubic
    g.CompositingQuality = CompositingQuality.HighQuality
    g.DrawImage(bm, 0, 0, ScaledWidth, ImageBox.Height)
    ImageBox.Image = temp
于 2013-04-13T19:49:43.297 に答える