需求

在平时我们有没有这种需求,把一段文字用艺术字显示,并且可以保持成图片

例如我们在新浪微博中 所见到的 如:(http://ww1.sinaimg.cn/bmiddle/dd0b97bbjw1e803gixiy6j20c83gvqtp.jpg

使用说明

使用很简单:在控制台中输入 > ruby 程序文件名 字符文件名
即可 如 ruby text-img.rb test.txt

下面讲解的是如何实现的代码

1. 在ruby代码中,使用 ARGV[0] 接收输入的参数

2. 判读接收到的参数文件是否存在

3. 在文件存在的情况下,我们就可以来制作图片了

  1. 首先我们 需要用到一些图形处理的gem,如 rmagick (文档API: https://github.com/rmagick/rmagick ), 字体ttf文件 和 字符串文件
  2. 开始创建一个与制定的空图片

    img = Magick::Image.new(width,height,Magick::HatchFill.new('white','white'))
    参数说明:Image对象定义的前两个参数是定义图片的宽和高,后门一个定义图片的背景(可选),默认为白色。
    
  3. 创建一个画布,并设置字体格式即文字大小

     gc = Magick::Draw.newgc.stroke('transparent')gc.pointsize(24)参数说明:-stroke 描边用的颜色   -pointsize 加注字体大小,像素数
    
  4. 在把我们需要的字符串写在图片上

      gc.font(字体文件的路径)gc.text(X坐标,Y坐标, 字符串)参数说明:-font 指定字体,因为这样我加注文字,-text 指定字符串的 绘画位置坐标和字符
    
  5. 把画布印在图片上,并输出

    gc.draw(img)
    img.write(图片的名字)
    参数说明:-draw 是用来画,这里是文字  -write 是把图片输出
    
  6. 好了现在 运行 ruby text-img.rb test.txt

  7. 这样图片就出来了,见图 

  8. 看一下完整的代码

    #-*- 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

字符串转化为艺术字图片相关推荐

  1. base64字符串转化成图片

    /*** base64字符串转化成图片** @param base64* @return*/ public static File base64ToFile(String base64) throws ...

  2. python输入字符串转换为公式_将python字符串转化成长表达式的函数eval实例

    爬一个网页时,要保存的数据都没有encode,就导致保存下来的中文都变成unicode了... 那么,怎么把一个表示字符串的unicode还原成unicode呢? 函数eval(expression) ...

  3. R语言as.Date函数将字符串转化为日期格式实战

    R语言as.Date函数将字符串转化为日期格式实战 目录 R语言as.Date函数将字符串转化为日期格式实战 #基础语法 # 仿真数据

  4. 程序员面试题100题第17题——字符串转化为整数

    题目:把输入的字符串转化为整数,如:"-456" 输出456."+456"输出456,"456"输出"456",如果是非 ...

  5. 如何将比Long类型更大数值字符串转化为整数

    前几天,需要做一个number类型的数据库主键唯一处理,而且有38位.于是再想使用什么规则控制唯一性.最后决定采用时间,年月日时分秒毫秒,再加随机数. 问题产生了,如何将一个38位的数字字符串转化为整 ...

  6. Android复习04(适配器 Get()请求 适配器 getView()方法 Post()请求 保存Cookie 流转字符串 从网上获取图片 重点考Json解析)

    目   录 适配器 Get()请求 适配器 getView()方法 Post()请求 保存Cookie 流转字符串 从网上获取图片 重点考Json解析 适配器 Get()请求 适配器 getView( ...

  7. 《剑指offer》-- 栈的压入与弹出序列、把字符串转化为整数、扑克牌顺子、孩子们的游戏(圆圈中最后剩下的数)

    一.栈的压入与弹出序列: 1.题目: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序. 假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序 ...

  8. 算法: 把字字符串转化为整数;

    算法: 把字字符串转化为整数: * @问题: 把字符串转化为整数* 题目描述* 将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返 ...

  9. 【mysql】str_to_date()字符串转化为日期类型

    前言 mysql 5.7.31 字符串转化为日期类型 SELECT str_to_date('2021-05-07', '%Y-%m-%d'); /*2021-05-07*/ SELECT str_t ...

最新文章

  1. 内存回收的一些基本方法
  2. 【 C 】指针数组案例分析(const的作用)
  3. vue可视化拖拽生成工具_vue实现可视化可拖放的自定义表单的示例代码
  4. 【408预推免复习】计算机组成原理之系统总线
  5. 9.JAVA之GUI编程列出指定目录内容
  6. 2007年10月14日的日记
  7. 前台如何解析json格式 以及后台如何生成json格式
  8. Linux下C语言使用openssl库进行MD5校验
  9. 中国移动研究院人力群面
  10. ORM定制的几点注意事项
  11. 大学生创新创业实务 复习题(无答案)
  12. 浅谈互联网寒冬Android进阶之路
  13. simpson公式matlab实现,数值分析复化梯形公式复化Simpson公式MATLAB程序
  14. SolidWorks学习笔记5创建基准面,基准线,基准点
  15. QQ邮箱疯狂的附件:别人笑我太疯癫 我笑别人看不穿
  16. 怎么把pdf转换成ppt直接进行编辑
  17. 免费使用OriginPro学习版
  18. matlab中Cci,CCI指标实战操作中使用技巧
  19. 以太坊合并后,矿工们要失业了吗?
  20. css实现三角形加文字

热门文章

  1. 录音文件下载_史上最好用的录音转文字APP!实时转换,一分钟搞定一天工作量...
  2. caffe详解之全连接层
  3. 09.领导力发展的案例摘录——卓越领导者
  4. 梦想工作是计算机英语,我的梦想工作英语作文(通用10篇)
  5. SAP abap内表分类与增删改查操作
  6. 通过IDEA使用GIt
  7. 缓存雪崩 缓存击穿 缓存雪崩出现原因及解决方案
  8. 8086汇编初学之贪吃蛇
  9. 标准求职简历表-Word简历可编辑下载
  10. 静态局部变量(static)用法