字符串转化为艺术字图片
需求
在平时我们有没有这种需求,把一段文字用艺术字显示,并且可以保持成图片
例如我们在新浪微博中 所见到的 如:(http://ww1.sinaimg.cn/bmiddle/dd0b97bbjw1e803gixiy6j20c83gvqtp.jpg
使用说明
使用很简单:在控制台中输入 > ruby 程序文件名 字符文件名
即可 如 ruby text-img.rb test.txt
下面讲解的是如何实现的代码
1. 在ruby代码中,使用 ARGV[0] 接收输入的参数
2. 判读接收到的参数文件是否存在
3. 在文件存在的情况下,我们就可以来制作图片了
- 首先我们 需要用到一些图形处理的gem,如 rmagick (文档API: https://github.com/rmagick/rmagick ), 字体ttf文件 和 字符串文件
-
开始创建一个与制定的空图片
img = Magick::Image.new(width,height,Magick::HatchFill.new('white','white')) 参数说明:Image对象定义的前两个参数是定义图片的宽和高,后门一个定义图片的背景(可选),默认为白色。 -
创建一个画布,并设置字体格式即文字大小
gc = Magick::Draw.newgc.stroke('transparent')gc.pointsize(24)参数说明:-stroke 描边用的颜色 -pointsize 加注字体大小,像素数 -
在把我们需要的字符串写在图片上
gc.font(字体文件的路径)gc.text(X坐标,Y坐标, 字符串)参数说明:-font 指定字体,因为这样我加注文字,-text 指定字符串的 绘画位置坐标和字符 -
把画布印在图片上,并输出
gc.draw(img) img.write(图片的名字) 参数说明:-draw 是用来画,这里是文字 -write 是把图片输出 -
好了现在 运行 ruby text-img.rb test.txt
-
这样图片就出来了,见图

-
看一下完整的代码
#-*- coding: utf-8 -*- require 'RMagick' # gem install rmagickdef file_read(filename) return nil if !File.exist?(filename) content = "" File.open(filename) do |file|content = file.read end puts content return content enddef img_init(str,width,height,img_name) img = Magick::Image.new(width,height,Magick::HatchFill.new('white','white')) gc = Magick::Draw.new gc.stroke('transparent') gc.pointsize(24)gc.font("luxirbi.ttf") gc.text(20,40, str) gc.draw(img) img.write(img_name) endparam = ARGV[0]filename = file_read(param)if filename.nil? p 'not fond' else img_init(filename, 440, 800, 'img.jpg') end
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
