zoukankan      html  css  js  c++  java
  • RMagick动态生成图片

    安装配置
    在RMagick安装前,确保你的系统正确安装了rubys。
    RMagick的安装配置很简单:下载安装文件,解压缩后,在命令行状态下进入解压缩后的目录,找到RMagick的gem,如rmagick-1.14.1-win32.gem,然后命令行执行:gem rmagick-2.3.0-x86-mswin32.gem,然后双击ImageMagick-6.4.0-2-Q8-windows-dll.exe进行安装,只需要根据个人情况改变安装路径即可 。


    需求很简单,就是动态生成一个指定大小的图片,然后再图片上写几个汉字或者数字,英文等,所以大概的步骤就是这样的,直接看代码吧:
    复制内容到剪贴板
    代码:


      require 'RMagick' 
    class DrawPrice 
      
         def self.draw(name,text1,text2,url='http://www.j-kanban.com') 
              img = Magick::Image.new(400,100,Magick::HatchFill.new('white','lightcyan2'))   
              gc = Magick::Draw.new   
              gc.stroke('transparent')   
              gc.pointsize(16)   
              gc.font("fonts/simhei.ttf")   
              gc.text(10,30, "#{text1}")   
              gc.text(10,50, "#{text2}")   
              gc.text(10,70, url)   
              gc.draw(img)   
              img.write("c:\\#{name}.jpg") 
          end 
      
      end 
      
      DrawPrice.draw("China","2008年5月12日14时28分","让我们永远铭记这一刻,愿逝者安息,生者坚强") 
    图片处理需要提供多种字体来写字,还考虑到发布环境在linux下,所以用了这样的方法:从Windows的字体文件夹c:/windows/fonts下拷贝出中文字体库到自己的工程目录的fonts目录中,然后通过设置gc.font来使用它们。

    RMagick动态生成图片

    class DrawPrice 
      
         def self.draw(name,text1,text2,text3) 
              img = Magick::Image.new(600,89,Magick::HatchFill.new('black','black'))   
              gc = Magick::Draw.new   

              gc.pointsize(24)   
              gc.font("fonts/simhei.ttf")   
              gc.fill('white')
              gc.text(10,25, "#{text1}")   
              gc.text(10,50, "#{text2}")   
              gc.text(10,75, "#{text3}")   
              gc.draw(img)   

              src = Magick::Image.read("candle.gif")[0]

                result = img.composite(src, Magick::CenterGravity,250,5,Magick::OverCompositeOp)
              result.write("c:\\#{name}.jpg") 
          end 
      
      end 
      
      DrawPrice.draw("China","沉痛悼念四川汶川大地震遇难同胞","2008年5月12日14时28分","让我们永远铭记这一刻,愿逝者安息,生者坚强") 

    RMagick动态生成图片

  • 相关阅读:
    Nuget:aliyun-openapi-sdk
    iptables简述
    openOffice安装
    bash:command not found
    linux nc命令
    linux命令帮助
    linux用户管理
    LDAP 后缀操作
    LDAP缓存命令
    LDAP索引及缓存优化
  • 原文地址:https://www.cnblogs.com/stalwart/p/1859607.html
Copyright © 2011-2022 走看看