标签归档:imagick

imagick处理宽高值相反的问题(带旋转方向的图片)

最新ios开发者同事反馈,iPhone拍的图片(竖着拍)上传接口获取的宽高和实际的宽高正好相反。原本为2448×3264(通过mac 显示简介查看的尺寸)的图片,接口返回是 3264×2448。然后php本地测试getimagesize() 发现就是 3264×2448。 在chrome或火狐或者是safari 查看图片时看起来是竖图且标签显示为 2448×3264, 但是在ie 11 都显示的为横图,属性显示为3264×2448。 后来经过查询资料发现,图片的exif信息中有一项为orientation表示方向。ie不识别这个方向。可以理解为实际它应该是一个横图,只是方向旋转了90度。(因为肯定是想要视觉效果就是竖图)现在要想办法把它处理为一个 2448×3264 不带旋转的图片(效果和chrome等展示的一样),这样获取的宽高信息才算正确。(之前还尝试了 -strip把exif信息清理了,再用getimagesize获取还是3264×2448。) Exif的Orientation信息说明: http://blog.csdn.net/ouyangtianhan/article/details/29825885 已查到如果php用imagick的扩张: 可以用 $image = new Imagick(‘/data/wwwroot/zfabu_dev/test/IMG_5035.JPG’); $image->getImageProperty(“exif:Orientation”); 输出结果为 6 网上有个地址 http://www.markdream.com/technologies/programs/php-get-the-picture-exif-info.shtml 比较详细的说明了php获取exif 信息。这里6表示 right side top 。 通过上面那个连接参考,拍照可能出现的数值也就是 1,3,6,8,1和3分别未0和180度,应该不会颠倒宽高,只需要处理是6和8的情况了。 因为应用服务器没有安装php imagick扩张,只能想办法用命令,问的官方论坛: http://www.imagemagick.org/discourse-server/viewtopic.php?f=1&t=27374 之前我在convert 参数页面搜索exif时看到了-auto-orient 这个命令。贴子里老外又正好回复了这个。 那现在我的解决方案是:判断图片的方向是为6或8时,使用-auto-orient … 继续阅读

发表在 Php | 标签为 , | 留下评论

imagick -bordercolor设置为无色

继上篇看的官方的例子用 border 0 解决帧混乱问题,但是不想添加颜色,因为有些gif背景是无色的。 http://vi0.6rooms.com/live/2015/04/03/18/1004v1428055533906138178.gif 添加了颜色后跟原图不一致了。 http://vi0.6rooms.com/live/2015/04/03/18/1004v1428055533906138178_s.gif 想着不设置bodercolor 但是文档说明这个bodercolor默认是 #DFDFDF 灰色。后来经别人指点,设置为 none 或者 transparent 。 谷歌搜索 imagick bordercolor 第一个链接 : http://www.imagemagick.org/script/color.php#color_names 可设置的颜色最下面 none transparent convert ~/Downloads/dog.gif  -coalesce -bordercolor none -border 0 -sample ’100×100′ -layers Optimize dog_s.gif 以后无这种概念要多想着用“none”这样的词表示,并多找官方文档查看。 如果不通过谷歌搜索得到那个链接,从首页找的话: site map … 继续阅读

发表在 Php | 标签为 , | 留下评论

imagick压缩gif图片问题处理

之前处理gif时会碰到小缩图,模糊的情况。一直没有处理。 这次又有ios组同事反馈 1.8M的gif图片,压缩后大缩图比原图还大,竟然为6.3M 。并且动画显示有问题。无奈去官网论坛找人求助结合看官方文档解决了这个问题。 convert -quality 80 -resize ’980×735′ game.gif game2.gif convert -quality 80 -resize ’980×735′ +repage game.gif game4.gif 貌似以上处理无用。 额外了解了: +profile “*”或-strip 可以清除图片的exif信息,可以稍微减少一点大小。 convert +profile “*” -strip ymy.jpg ymy_profile.jpg -rw-r–r– 1 www www 2748416 Nov 3 2012 ymy.jpg -rw-r–r– … 继续阅读

发表在 Php | 标签为 , | 留下评论