数码相机照片通常保存为带有 EXIF“方向”标签的 JPEG。为了正确显示,图像需要根据设置的方向进行旋转/镜像,但浏览器会忽略渲染图像的此信息。即使在大型商业 Web 应用程序中,对 EXIF 方向的支持也可能不稳定1 http://www.daveperrett.com/articles/2012/07/28/exif-orientation-handling-is-a-ghetto/。同一来源还提供了一个很好的总结8个不同的方向JPEG 可以有:
示例图像可在4 http://www.galloway.me.uk/2012/01/uiimageorientation-exif-orientation-sample-images/.
问题是如何在客户端旋转/镜像图像,以便其正确显示并在必要时可以进一步处理?
有 JS 库可用于解析 EXIF 数据,包括方向属性2 https://github.com/jseidelin/exif-js。 Flickr 指出解析大图像时可能存在性能问题,需要使用 webworkers3 http://code.flickr.net/2012/06/01/parsing-exif-client-side-using-javascript-2/.
控制台工具可以正确地重新定向图像5 https://superuser.com/questions/36645/how-to-rotate-images-automatically-based-on-exif-data。解决该问题的 PHP 脚本位于6 http://www.neilyoungcv.com/blog/code-share/image-resizing-with-php-exif-orientation-fix/
github项目JavaScript 加载图像 https://github.com/blueimp/JavaScript-Load-Image为 EXIF 方向问题提供完整的解决方案,正确旋转/镜像所有 8 个 exif 方向的图像。请参阅在线演示javascript exif 方向 http://blueimp.github.io/JavaScript-Load-Image/
图像被绘制到 HTML5 画布上。它的正确渲染是在js/加载图像方向.js https://github.com/blueimp/JavaScript-Load-Image/blob/master/js/load-image-orientation.js通过画布操作。
希望这可以节省其他人一些时间,并向搜索引擎介绍这个开源宝石:)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)