ImageMagick裁剪尺寸异常:指定5862x367却得到367x5862
ImageMagick裁剪尺寸方向反转问题
问题详情
尝试将图片裁剪为5862×367尺寸,实际得到的却是367×5862的结果。
使用的命令
convert -crop 5862x367+0+0 +repage "/Users/ramakrishnanbalakrishnan/sites/img/test_in.JPG" "/Users/ramakrishnanbalakrishnan/sites/img/out_3.jpg"
环境信息
- ImageMagick版本:7.1.1-8
- 原始图片带有EXIF方向元数据,裁剪后图片宽高与预期完全反转。
问题原因
ImageMagick默认会读取并应用图片的EXIF方向元数据,自动将图片旋转至视觉正确的显示方向。这会导致裁剪时的坐标系是旋转后的,原本指定的宽高尺寸被同步反转。
解决方法
方法1:先校正方向再裁剪
在命令中添加-auto-orient参数,先将图片旋转至EXIF指定的正确方向,再执行裁剪:
convert -auto-orient -crop 5862x367+0+0 +repage "/Users/ramakrishnanbalakrishnan/sites/img/test_in.JPG" "/Users/ramakrishnanbalakrishnan/sites/img/out_3.jpg"
方法2:忽略EXIF方向元数据
通过-define exif:orientation=0参数强制忽略图片的方向元数据,以原始像素坐标系进行裁剪:
convert -define exif:orientation=0 -crop 5862x367+0+0 +repage "/Users/ramakrishnanbalakrishnan/sites/img/test_in.JPG" "/Users/ramakrishnanbalakrishnan/sites/img/out_3.jpg"
内容的提问来源于stack exchange,提问作者Rams
相关产品推荐
相关产品推荐

