我正在尝试使用jquery mobile和php从手机上传一些照片但是在上传我的照片之后它总是以横向格式,即使我的照片是在我的iphone上的纵向格式!
所以我不知道哪一个必须轮换或不。
由于
答案 0 :(得分:0)
我有同样的问题。我的解决方案有点快速和肮脏但是你走了:
编写要在图像加载时调用的函数,检查图像是否将以横向渲染。
$(".imgTile").load(function(){
if(this.width>this.height){
$(this).css("transform","rotate(90deg)");
$(this).css("top",".7em");
$(this).css("left","-.5em");
}
}
一些注意事项:我发现我必须做一些重新定位才能使旋转的图像适合列表视图(因此设置了顶部和左侧属性),因此您可能需要根据需要进行调整。其次,不同浏览器有不同的css“转换”属性,因此您可能需要将每个属性设置为具有跨浏览器支持。以下是有关这些属性http://www.w3schools.com/cssref/css3_pr_transform.asp
的指南 编辑:我花了一些时间,想出了一个更加可靠的解决方案。首先,使用php阅读exif标签:
$exif=exif_read_data("uploads/$fileExtension.jpg",0,true);
$orient=$exif["IFD0"]["Orientation"];
对EXIF标准的一些研究表明,iPhone将产生的三种情况是:
1--不需要轮换 3--需要180度。回转 6--要求90度旋转
然后使用php的shell_exec运行以下shell脚本,该脚本使用imagemagick来销毁EXIF标头,并以指定的数量物理旋转图像:
#!/bin/bash
for i in $[filename]
do convert -rotate $[number of degrees] $i $i
done
mogrify -strip $[filename]
现在,图像将在任何地方正确定位,并且读取EXIF标题的浏览器不会以任何不同的方式显示它。
唯一要做的就是根据标记值使用正确的参数执行脚本。
希望这有帮助!