【发布时间】:2016-01-19 18:48:02
【问题描述】:
我们的 Web 应用程序从许多不同的第三方来源接收图像文件。业务规则规定我们将原始图像保存为收到的图像,而不进行任何类型的图像处理。当通过专用 Web 服务器使用 ImageResizer 为图像请求图像时,我们会处理调整大小、水印、旋转等。 autorotate=true 和 copymetadata=true 是图像服务器上的默认值。
其中一个第三方来源对图像旋转的处理存在问题。当他们最初收到图像时,他们会通过旋转图像来尊重图像的 EXIF 方向数据。但是,它们保留了 EXIF 方向数据的预旋转版本。因此,当图像出现在我们面前时,它会旋转,但 EXIF 方向标志仍保留在图像中。当从我们的图像服务器请求图像时,会处理方向标志(通过 autorotate=true),并再次旋转生成的请求图像(看起来不正确),并删除 EXIF 方向数据。这会导致用户不满意。
说服第三方改变他们处理 EXIF 数据的方式不是一种选择。
我们计划对这些特定图像使用的解决方案是在请求时设置 autorotate=false。但是,EXIF 方向信息仍然存在。由于我没有看到仅删除 EXIF 方向数据的 ImageResizer 选项(除了进入 System.Drawing 命名空间,我们不希望这样做),我们正在考虑为这些特定图像设置 copymetadata=false。
Web 服务器提供没有元数据的图像有什么缺点?特别是关于色彩空间/配置文件?这些图片最终会被复制并在其他网站上使用。
【问题讨论】:
标签: metadata orientation exif imageresizer autorotate