Php Jquery手机定向上传照片
我正试图使用jquery mobile和php从手机上传一些照片,但上传照片后,即使我的照片在iphone上是纵向格式,也总是以横向格式 所以我不知道哪一个必须旋转或不旋转Php Jquery手机定向上传照片,php,image,mobile,upload,orientation,Php,Image,Mobile,Upload,Orientation,我正试图使用jquery mobile和php从手机上传一些照片,但上传照片后,即使我的照片在iphone上是纵向格式,也总是以横向格式 所以我不知道哪一个必须旋转或不旋转 谢谢,我也有同样的问题。我的解决方案有点快,有点脏,但你看: 编写一个在加载图像时调用的函数,检查图像是否要在横向中渲染 $(".imgTile").load(function(){ if(this.width>this.height){ $(this).css("transform
谢谢,我也有同样的问题。我的解决方案有点快,有点脏,但你看: 编写一个在加载图像时调用的函数,检查图像是否要在横向中渲染
$(".imgTile").load(function(){
if(this.width>this.height){
$(this).css("transform","rotate(90deg)");
$(this).css("top",".7em");
$(this).css("left","-.5em");
}
}
两个注意事项:我发现我必须进行一些重新定位,以使旋转后的图像正确地适合listview(因此设置了“顶部”和“左侧”属性),因此您可能需要根据自己的需要对此进行调整。第二,不同浏览器有不同的css“transform”属性,因此您可能需要将每个属性设置为具有跨浏览器支持。这里有一个关于这些属性的指南
编辑:我花了一些时间,想出了一个更为坚实的解决方案
首先,使用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脚本,该脚本用于销毁EXIF头,并将图像物理旋转指定的数量:
#!/bin/bash
for i in $[filename]
do convert -rotate $[number of degrees] $i $i
done
mogrify -strip $[filename]
现在,图像将被正确地定向到任何地方,并且确实读取EXIF头的浏览器不会以任何方式显示它
剩下要做的唯一一件事就是根据标记值使用正确的参数执行脚本
希望这有帮助