1

我有一个带有画廊的页面,用户可以在其中上传图片。我注意到有一个特定的用户上传了 3 张 tiff 图像并且无法访问它们。

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

它发生在这里:

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

文件似乎没问题,因为 File.ReadAllBytes() 有效,我可以使用其他方法下载它们(不工作的方法仅用于返回调整大小的图像),在本地测试并且不会抛出异常。任何想法可能是什么情况?不幸的是,我还不知道其他用户上传的所有 tiff 图像是否也会发生这种情况。

4

1 回答 1

1

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

在没有看到 TIFF 的情况下,我无话可说。但我可以建议您尝试一些仅用于 TIFF 文件的第三方库。有事实上的标准libtiff库,我已经将它移植到 C#前一段时间。你可以试试这个端口。

您可能会感兴趣一些示例。我认为将颜色 TIFF 转换为 32 位 System.Drawing.Bitmap可能最适合您的任务。

于 2012-05-10T14:52:27.273 回答