2012-05-10 218 views
1

我有一个用户上传图片的图库页面。我注意到有一个特定的用户上传了3张tiff图片,并且他们无法访问。从tiff图像创建位图对象

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

它发生在这里:

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

文件似乎是确定,SICE File.ReadAllBytes()的作品,我可以用其他方法进行下载(一个不工作用于返回一个调整图像),在本地测试并且不抛出异常。任何想法可能是这种情况?不幸的是,我不知道这是否也会出现在其他用户上传的所有tiff图片上。

回答

1

支持TIFF风格(并且有很多)取决于服务器上的Windows版本。更确切地说,它取决于GDI +库的版本。

没有看到TIFF,我没有什么可以告诉的。但我可以推荐你尝试一些第三方库,仅用于TIFF文件。事实上标准的libtiff库和我有ported it to C#前一段时间。你可以试试这个端口。

有一些您可能感兴趣的样本。我认为Convert color TIFF to a 32-bit System.Drawing.Bitmap可能最适合您的任务。

+0

我使用专用于tiff图像的[this](http://bitmiracle.com/libtiff/help/convert-color-tiff-to-a-32-bit-system.drawing.bitmap.aspx)方法,它似乎正在工作(生产运行在Windows服务器2K8,我的工作站在WIN7上,所以可能是这个问题),非常感谢! – matt137