天天看点

使用ImageMagick使图片具有透视效果使用ImageMagick工具处理图片

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个坐标处(坐标位置根据需要自己计算),计算好坐标位置就可以让平面的图形出现透视效果,如图:

使用ImageMagick使图片具有透视效果使用ImageMagick工具处理图片

执行命令:

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 图像外的虚拟像素颜色为透明

注:一定是双引号,不是单引号,单引号会报错(虽然官方文档上也是单引号,太无语啦)

图片合成

左边图片合成

将两张图片合成一张,如图:

使用ImageMagick使图片具有透视效果使用ImageMagick工具处理图片

执行命令:

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

右边图片合成

使用ImageMagick使图片具有透视效果使用ImageMagick工具处理图片

(应该有更好的方法不用中间这张空白图片,知道的话求评论告知)

magick convert bg0.png 1.png -geometry 396x266!+683+182 -composite 4.png
           

! 感叹号表示忽略原始宽高比

使用ImageMagick使图片具有透视效果使用ImageMagick工具处理图片
magick convert 4.png 3.png -composite 5.png
           

注意图片的先后顺序,先写的再下面一层

其它常用命令

// 改变图像大小
magick convert -resize 395x266! 1.png 2.png
// 批量改变图片大小
magick mogrify -sample 558x390!*.png
           

继续阅读