zoukankan      html  css  js  c++  java
  • 利用脚本将文字插入到图片或进行多个图片拼接

    最近做一个拼图游戏,因为有十几关,所以测试的时候也是看的两眼冒金星!于是想到在图片上标上数字,直接按数字排序就方便多了。
    Linux下有个图片处理工具imagemagick很强大,正适合做这种后台处理图像的工作。

    安装方法:

    $ sudo aptitude install imagemagick



    1、添加文本的命令(折腾了半天才得来的成果):

    $ convert -font helvetica  -pointsize 50 -density 65  -fill red -draw "text 0,56 T99"  in.jpg out.jpg


    参数解释:

    • convert - imagemagick工具的一个核心命令,用于图片格式转换,缩放,剪切等等
    • -font - 指定字体
    • -pointsize - 字体点阵大小
    • -density - 字体点阵密度
    • -fill - 字体颜色
    • -draw - 'text'表示插入文本,'0,56'表示文本的起始坐标,'T99'表示要显示的文本
    • in.jpg - 输入图片文件名称
    • out.jpg -输入图片文件名称


    注意:
    'T99'表示要显示的文本,注意这里文本必须以字符开头,文字或下划线或其它字符开头会报错

    关于字体类型还可以看这一段解释:

    如何用23英寸高的文字注释一个图片?   
    先检查有无可缩放字体:
    $ xlsfonts -fn '*-0-0-0-0-*' 
     
    有则:
    $ convert -font '-*-helvetica-*-*-*--300-300-*-*-*-*-iso8859-1' -fill green -draw 'text 50,300 Magick' image.gif annotated.gif
     
    # If you have the FreeType support built into ImageMagick,
    # just increase your pointsize and/or density:
    $ convert -font Helvetica -pointsize 100 -density 300 -fill green -draw 'text 50,300 Magick' image.gif annotated.gif



    2、多个图片拼接命令

    $ convert -size 500x500 xc:back -draw 'image Over 10,10 200,200 "in.jpg"' out.jpg
    $ convert -size 500x500 xc:#cfcfcf -draw 'image Over 10,10 200,200 "in.jpg"' out.jpg


    拼接两个640x960图成1280x640片示例:

    convert -size 1280x960 xc:#cfcfcf -draw 'image Over 0,0 640,960 "2.jpg"' -draw 'image Over 640,0 640,960 "1.jpg"'   out.jpg


    参数说明:

    • -size - 定义的图片尺寸,如果要拼接多图,需要提取计算出最后的尺寸
    • xc - 输出图片背景颜色,两种指定方式看上面示例
    • -draw - 该参数的格式为' image Over 起始坐标 要显示的width与height "输入图片名称"' 输出图片名称


    注意:'image Over'关键字不可少,表示添加图片,好像也可以使用'image SrcOver',具体差别不太清楚;起始坐标表示要插入的图片在输出图像中左上角对应的坐标;第二个数值对为在输出图像上要显示的width与height,如果给的不成比例,它会自动调整

    至于如何将一张图片叠加到另一张之上,通过上面拼接示例也很容易实现的(~自己去思考~)。

    关于imagemagick的更多信息,可以参阅本人很久之前整理(或撰写)的三篇文档:
    [1] ImageMagick FAQ摘要:www.mcuos.com/thread-598-1-4.html
    [2] ImageMagick简单介绍:www.mcuos.com/thread-596-1-4.html
    [3] ImageMagick详细补充:www.mcuos.com/thread-597-1-4.html

  • 相关阅读:
    【题解】洛谷P4391 [BOI2009] Radio Transmission(KMP)
    【题解】UVA10298 Power String(KMP)
    【题解】洛谷P4281 [AHOI2008] 紧急集合(求三个点LCA)
    [BZOJ4712]洪水-[树链剖分+线段树]
    [BZOJ2961]共点圆-[凸包+cdq分治]
    [BZOJ1185][HNOI2007]最小矩形覆盖-[凸包+旋转卡壳]
    [BZOJ2738]矩阵乘法-[整体二分+树状数组]
    [POJ2104]Kth Number-[整体二分]
    [arc082F]Sandglass
    [arc076F]Exhausted?
  • 原文地址:https://www.cnblogs.com/mfryf/p/2347982.html
Copyright © 2011-2022 走看看