问题描述
我有一个图像在这个链接:http://d38daqc8ucuvuv.cloudfront.net/avatars/216/2014-02-19%2017.13.48.jpg
正如你所看到的,这是正确的方向的正常图像。但是,当我将此链接设置为我的图像标签的 src 属性时,图像将被颠倒。 http://jsfiddle.net/7j5xJ/
<body>
<img src="http://d38daqc8ucuvuv.cloudfront.net/avatars/216/2014-02-19%2017.13.48.jpg" width="200"/>
</body>
你有什么想法吗?
最佳解决方法
我找到了解决方案的一部分。图片现在具有指定照片方向的元数据。 image-orientation
有一个新的 CSS 规范。
只需将其添加到您的 CSS:
img {
image-orientation: from-image;
}
根据 2016 年 1 月 25 日的规格,Firefox 和 iOS Safari(后缀在前缀) 是唯一支持此功能的浏览器。我看到 Safari 和 Chrome 仍然出现问题。然而,移动 Safari 似乎本来支持没有 CSS 标签的方向。
我想我们必须等待浏览器是否开始支持 image-orientation
。
次佳解决方法
你的形象实际上是颠倒的。但它有一个元属性”Orientation”,告诉观众它应该是旋转 180 度。某些设备/浏览者不遵守此规则。
在 Chrome 中打开它:正确的方法在 FF 中打开它:正确的方式在 IE 中打开它:颠倒
在油漆中打开它:颠倒在 Photoshop 中打开它:正确的方式。等等
第三种解决方法
我忘了在这里添加自己的答案。我在使用 Ruby on Rails,因此它可能不适用于您在 PHP 或其他框架中的项目。在我的情况下,我正在使用 Carrierwave gem 上传图像。我的解决方案是将以下代码添加到 uploader 类中,以便在保存文件之前修复 EXIF 问题。
process :fix_exif_rotation
def fix_exif_rotation
manipulate! do |img|
img.auto_orient!
img = yield(img) if block_given?
img
end
end
第四种方法
这是您的三星手机所包含的 EXIF 数据。
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。