先看合成后的效果图。

需要的图片素材:

1.一张图片(335x600)

2.一张蒙版图片(335x600)

3.一张相框图片(335x600)

第一步,根据蒙板和图片,截取图片。而且所截取的图片之外的地方需要透明。

我提供的蒙版黑色区域外是透明的,那么需要蒙版黑色区域外显示透明色,黑色区域内显示照片就行了。

ImageMagick中合成图片有几种方式,其中convert命令下加上-composite参数可以合成图片。

以下摘自:www.189works.com/topic/a/tupianzhuanti/ImageMagick/chuji/2012/0229/34.html#fill

-composite
执行两张图像阿尔法通道的合并,还包括一个可选的蒙版。
根据当前的-compose设置,将第一张destination图像重叠至第二张source图像上。其中source图像的位置通过-geometry选项来设置。
如果存在第三张图像,它将被视为与destination图像相关的一个灰度蒙版。这个蒙版可以在destination图像中设置允许进行修改的区域。不过,对于displace合并方式,蒙版将用来提供一个单独的Y位移图像。
如果-compose选项需要更多的数字参数或标志,那么可以通过使用“-set 'option:compose:args'”来进行设置。
还有一些合并方式可以修改覆盖区域外的destination图像。你可以通过设置“-set 'option:compose:outside-overlay'”为false来禁止这种行为。

这里提到-compose。

-compose operator
设置图像合并类型。
可以参考阿尔法通道合并的讲解获得更详细的信息。
此设置会影响合并两个(或更多)图像操作命令对图像的处理方式。这些命令包括:-composite, -layers composite, -flatten, -mosaic, -layers merge, -border, -frame, -extent。
它也是composite命令的主要选项之一。

另外这里有一篇写的很好的博文,详细介绍了-compse的基本用法。

http://www.cnblogs.com/mfryf/archive/2012/02/12/2347975.html

如果以上都看完了,那么合成需要的图片基本没什么问题了。

第一步裁剪图片。

直接上命令:

convert mask-1.png -compose atop mask-0.png -geometry 355x600+0+0 -composite new.png

说明:

mask-1.png:蒙版图片。

mask-0.png:要合成的原始图片。

-geometry 355x600+0+0:这个参数指的是上层图片的大小和位置,355x600是图片的宽高,+0+0表示坐标(0,0)。

裁剪后的效果如下:

第二步,将生成的这张图与准备好的相框合成。

convert new.png -compose over 775_m.png -geometry 355x600+0+0 -composite new.png

说明:

775_m.png:相框图片。

运行完以后就出现上面的成品效果图了。

下面使用java来生成这种效果。

下载好im4java的jar包。

http://sourceforge.net/projects/im4java/files/im4java-1.4.0/

 /*** 生成蒙板和图片的合成图* 合成图的大小以蒙版大小为标准,且原图必须要与蒙版大小一致* 合成该图片的命令:* convert 蒙板图 -compose atop 原图 -geometry 大小和坐标 -composite 生成图片* @param desPath 生成的合成图的保存路径* @param srcPath 合成图* @throws IOException* @throws InterruptedException* @throws IM4JavaException*/public static void maskCompositePic(String desPath, String originalPic, String maskPic) throws IOException, InterruptedException, IM4JavaException {// 获取图片的宽高BufferedImage bi = ImageIO.read(new File(maskPic));int width = bi.getWidth();int height = bi.getHeight();IMOperation op = new IMOperation();op.addImage(originalPic);op.compose("atop");op.addImage(maskPic);op.geometry(width, height, 0, 0);op.composite();op.addImage(desPath);ConvertCmd cmd = new ConvertCmd();cmd.setSearchPath(imageMagickPath);cmd.run(op);}

结束语:

ImageMagick开源项目是一套功能强大、稳定、免费和开源的图形图像处理工具集和开发包。最重要的是它曝露出来的接口可供多种开发语言调用。这一点就让人爽歪歪了。

最近在使用java语言处理一下图像,自己在网上搜罗了一些比较有价值的资料,整理一下。

●网络进行时的博客,对我帮助很大。很感激和佩服这位博主。

http://www.netingcn.com/category/imagemagick

●提供了ImageMagick的API的中文翻译,在不断更新。还有ImageMagick的论坛。

http://www.189works.com/topic/a/tupianzhuanti/ImageMagick/

http://www.ibm.com/developerworks/cn/opensource/os-imagemagick/#distributing

最重要的是ImageMagick的官方网站,这个不说网上搜一下就能搜到。

http://www.imagemagick.org/script/index.php

ImageMagick利用蒙版合成图片相关推荐

  1. 谷歌研究利用AI合成图片,使静态图片动起来

    内容来源:ATYUN AI平台 谷歌的研究人员开发了一个基于深度学习的系统,可以将立体相机,VR相机和双镜头相机(如iPhone 7或X)拍摄的静态图像转换为短视频. "给出两个图像与已知的 ...

  2. PS系列之 -- 利用蒙版取消图片衔接的痕迹

    1 将待融合的两张图片放在一起 2 可以看到边缘与场景的明显痕迹,这时我们对着图层1添加一层蒙版 3.在工具箱中选择画笔工具,选择一个柔然笔刷,硬度为0,不透明度为62% 4,调整前景色为黑色,并用设 ...

  3. 利用svg合成任意形状的图片

    什么是svg: 百度百科这样说: SVG可以算是目前最最火热的图像文件格式了,它的英文全称为Scalable Vector Graphics,意思为可缩放的矢量图形.它是基于XML(Extensibl ...

  4. 转: ImageMagick 命令行的图片处理工具(客户端与服务器均可用)

    http://www.imagemagick.com.cn/ 关于ImageMagick ImageMagick (TM) 是一个免费的创建.编辑.合成图片的软件.它可以读取.转换.写入多种格式的图片 ...

  5. python抠透明图_python利用蒙版抠图(使用PIL.Image和cv2)输出透明背景图

    因为最近在做深度学习抠图,正好要用到蒙版进行抠图,所以我将抠图代码进行了封装注释,可以直接使用.可能走了弯路,若有高见请一定提出! 主要代码 import cv2 from PIL import Im ...

  6. linux查看图片的拍摄时间,ImageMagick 的一些高级图片查看技巧 | Linux 中国

    用这些 ImageMagick 命令行图像编辑应用的技巧更好的管理你的数码照片集. 在我先前的[1] 文章中,我展示了如何使用 ImageMagick 的菜单栏进行图片的编辑和变换风格.在这篇续文里, ...

  7. StackGAN详解与实现(使用tensorflow2.x实现)——利用文本合成逼真的图像

    StackGAN详解与实现(使用tensorflow2.x实现)--利用文本合成逼真的图像 StackGAN原理 StackGAN简介 StackGAN架构 文本编码器网络 条件增强网络 获取条件增强 ...

  8. linux查看image类型,ImageMagick 的一些高级图片查看技巧

    用这些 ImageMagick 命令行图像编辑应用的技巧更好的管理你的数码照片集. 在我先前的ImageMagick 入门:使用命令行来编辑图片 文章中,我展示了如何使用 ImageMagick 的菜 ...

  9. 图片播放器的实现1——利用Image2LCD提取图片数据并显示

    以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除. 参考内容 (1)https://xiefor100.blog.csdn.net/article/details/71941527 (2) ...

最新文章

  1. 清华大学-刘知远:自然语言理解难在哪儿?
  2. X431 元征诊断枪
  3. 求职特训营火热来袭 阿里大咖教你制作专业简历
  4. solor mysql_solr 同步 mysql
  5. Go1.18 新特性:多 Module 工作区模式
  6. android系统打印功能实现,Android实现系统打印功能
  7. pmbok第六版_英文版(带目录).pdf_书籍分享 | 高等数学(第六版)含解析~同济大学...
  8. TensorFlow安装中碰到的问题汇总
  9. C#匿名委托,匿名函数,lambda表达式
  10. ectouch微信支付,带微信H5支付
  11. 【深度学习】cs224n 自然语言处理
  12. java百度云盘,看完直呼内行
  13. 情感+事业,强者必学的定律
  14. [翻译]CryEngine3中ClothShader详解
  15. 利用计算机测地震是计算机的什么,地震监测计算机安装系统的制作方法
  16. 【Niagara Vykon N4 】物联网学习 01 Station创建
  17. 南京中兴软创,南京焦点科技
  18. python 视频清晰度_在opencvpython中调整视频分辨率
  19. 百词斩-扇贝测试评估
  20. python截取视频_python使用ffmpeg截取视频段

热门文章

  1. 租用服务器,以及部署在pycharm专业版上的pytorch环境训练yolov5模型教程服务器环境安装库文件:
  2. 牛客竞赛每日俩题 - 动态规划2
  3. 华为 组播之IGMPv2、IGMPv3
  4. 数字图像处理第7章——小波和多分辨率处理
  5. 系统清理优化工具:CCleaner
  6. 2018通达信l2服务器源码,2018最牛指标 最牛趋势跟踪 通达信指标 源码 贴图
  7. 计算机硬盘打开就失效了吗,硬盘引起的电脑启动故障汇总接解决方案
  8. 浙大计算机系帅哥,浙江大学有位帅哥!立志成为一名卓越的医学统计学家
  9. DDR2 MIG核与DDR3 MIG核使用区别
  10. 华硕电脑显示电源已连接未充电解决方法