2012-05-10 9 views
1

私は、ユーザーが画像をアップロードするギャラリーを持つページを持っています。 3つのTIFF画像をアップロードした1人のユーザーがアクセスできないことに気付きました。TIFF画像からビットマップオブジェクトを作成する

Exception type: System.ArgumentException 
Exception message: Parameter is not valid. 

それはここに起こる:

using (Image photo = new Bitmap(new MemoryStream(photoData))) 

ファイルは大丈夫、SICEのFile.ReadAllBytes(のようです)動作しますが、私が働いていない1のサイズが変更を返すために使用されている(他の方法を使用して、それらをダウンロードすることができますイメージのみ)、ローカルでテストし、例外はスローされません。どのような場合にはどんなアイディアがありますか? Unfortunatelly私はまだこれが他のユーザーによってアップロードされたすべてのtiffイメージのために起こるかどうか知りません。

答えて

1

TIFFフレーバーのサポートは、サーバー上のWindowsのバージョンによって異なります。より正確には、GDI +ライブラリのバージョンに依存します。

TIFFを見ることなく、私はそれ以上のことは分かりません。しかし、TIFFファイルのためだけにサードパーティのライブラリを試してみることをお勧めします。事実上の標準libtiffライブラリーがあり、私はported it to C#ということもあります。あなたはポートを試すかもしれません。

興味のあるサンプルがあります。Convert color TIFF to a 32-bit System.Drawing.Bitmapがあなたの仕事に最も適していると思います。

+0

私は[これ](http://bitmiracle.com/libtiff/help/convert-color-tiff-to-a-32-bit-system.drawing.bitmap.aspx)メソッドをTIFF画像専用に使用しています。 (生産はWindowsサーバ2k8上で実行されます。私のワーキングステーションはwin7にありますので、おそらく問題はそれです)、ありがとうございます! – matt137

関連する問題