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动态生成图片

原文地址:https://www.cnblogs.com/stalwart/p/1859607.html