ImageMagick制作透视图片
- 使用ImageMagick工具处理图片
-
- 参考文档
- 子命令
- 实现透视
- 图片合成
-
- 左边图片合成
- 右边图片合成
- 其它常用命令
使用ImageMagick工具处理图片
使用ImageMagick可以调整图像大小,翻转,镜像,旋转,变形,剪切和变换图像,调整图像颜色,应用各种特殊效果或绘制文本,线条,多边形,椭圆和贝塞尔曲线
参考文档
ImageMagick中文站
ImageMagick英文站
http://www.imagemagick.org/Usage/distorts/#perspective
https://blog.csdn.net/pzw_0612/article/details/53540724
子命令
ImageMagick 版本6兼容很多工具,如果计算机上没有这些工具,可以将它们用作命令的magick子命令
参考:https://imagemagick.org/script/command-line-tools.php
本文主要用convert(在图像格式之间进行转换以及调整图像的大小,模糊,裁剪,去斑点,抖动,绘制,翻转,合并,重新采样等等。)
要让图片有透视效果,要用到convert中的Perspective Distortion
实现透视
至少需要4组坐标(8个点,16个数字),将原本的4个点扭曲到我们所需要的另外4个坐标处(坐标位置根据需要自己计算),计算好坐标位置就可以让平面的图形出现透视效果,如图:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TP31EerRkT3dmeNBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL5kTNzAjMyITMzEzMwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
执行命令:
magick convert -virtual-pixel transparent -distort perspective "0,0,0,8 0,390,132,323 558,390,558,265 558,0,400,0" 1.png 2.png
-distort perspective 作用:Perspective distort the images,参考:https://imagemagick.org/script/command-line-options.php#distort
-virtual-pixel transparent 图像外的虚拟像素颜色为透明
注:一定是双引号,不是单引号,单引号会报错(虽然官方文档上也是单引号,太无语啦)
图片合成
左边图片合成
将两张图片合成一张,如图:
执行命令:
magick convert bg.png 2.png -geometry +80+273 -composite 3.png
-geometry 设置图像的首选尺寸和位置,与 -composite 一起使用时,
根据第一张图像的虚拟画布大小,根据 -gravity 调整 -geometry 偏移量,+X is left and +Y is up
参考https://imagemagick.org/script/command-line-processing.php#geometry
-composite 对两个图像执行Alpha合成
参考:https://imagemagick.org/script/command-line-options.php#composite
右边图片合成
(应该有更好的方法不用中间这张空白图片,知道的话求评论告知)
magick convert bg0.png 1.png -geometry 396x266!+683+182 -composite 4.png
! 感叹号表示忽略原始宽高比
magick convert 4.png 3.png -composite 5.png
注意图片的先后顺序,先写的再下面一层
其它常用命令
// 改变图像大小
magick convert -resize 395x266! 1.png 2.png
// 批量改变图片大小
magick mogrify -sample 558x390!*.png