首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jquery手机定位上传照片

Jquery手机定位上传照片
EN

Stack Overflow用户
提问于 2013-01-14 21:34:56
回答 1查看 1.8K关注 0票数 0

我试着用jquery mobile和php从手机上传一些照片,但是上传我的照片后,即使我的iphone上的照片是肖像格式的,它也总是横向的!

所以我不知道哪个必须旋转,哪个不旋转。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2013-03-02 07:36:28

我也有同样的问题。我的解决方案有点快速和肮脏,但你可以这样做:

编写一个在图像加载时调用的函数,检查图像是否要渲染到风景中。

代码语言:javascript
复制
 $(".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标记:

代码语言:javascript
复制
$exif=exif_read_data("uploads/$fileExtension.jpg",0,true);
$orient=$exif["IFD0"]["Orientation"];

对EXIF标准的一些研究表明,iPhone将生成的三种情况是:

1--不需要旋转3--需要180度。旋转6度--需要90度。旋转

然后使用php的shell_exec运行以下外壳脚本,该脚本使用imagemagick销毁EXIF头部,并以物理方式将图像旋转指定的量:

代码语言:javascript
复制
#!/bin/bash                                                                     
    for i in $[filename]
            do convert -rotate $[number of degrees] $i $i
    done

mogrify -strip $[filename]

现在,图像在任何地方都将被正确定位,并且读取EXIF头文件的浏览器将不会以任何方式显示它。

剩下的唯一要做的就是根据标记值使用正确的参数执行脚本。

希望这能有所帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14319437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档