字符串转化为艺术字图片
需求
在平时我们有没有这种需求,把一段文字用艺术字显示,并且可以保持成图片
例如我们在新浪微博中 所见到的 如:(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
字符串转化为艺术字图片相关推荐
- base64字符串转化成图片
/*** base64字符串转化成图片** @param base64* @return*/ public static File base64ToFile(String base64) throws ...
- python输入字符串转换为公式_将python字符串转化成长表达式的函数eval实例
爬一个网页时,要保存的数据都没有encode,就导致保存下来的中文都变成unicode了... 那么,怎么把一个表示字符串的unicode还原成unicode呢? 函数eval(expression) ...
- R语言as.Date函数将字符串转化为日期格式实战
R语言as.Date函数将字符串转化为日期格式实战 目录 R语言as.Date函数将字符串转化为日期格式实战 #基础语法 # 仿真数据
- 程序员面试题100题第17题——字符串转化为整数
题目:把输入的字符串转化为整数,如:"-456" 输出456."+456"输出456,"456"输出"456",如果是非 ...
- 如何将比Long类型更大数值字符串转化为整数
前几天,需要做一个number类型的数据库主键唯一处理,而且有38位.于是再想使用什么规则控制唯一性.最后决定采用时间,年月日时分秒毫秒,再加随机数. 问题产生了,如何将一个38位的数字字符串转化为整 ...
- Android复习04(适配器 Get()请求 适配器 getView()方法 Post()请求 保存Cookie 流转字符串 从网上获取图片 重点考Json解析)
目 录 适配器 Get()请求 适配器 getView()方法 Post()请求 保存Cookie 流转字符串 从网上获取图片 重点考Json解析 适配器 Get()请求 适配器 getView( ...
- 《剑指offer》-- 栈的压入与弹出序列、把字符串转化为整数、扑克牌顺子、孩子们的游戏(圆圈中最后剩下的数)
一.栈的压入与弹出序列: 1.题目: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序. 假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序 ...
- 算法: 把字字符串转化为整数;
算法: 把字字符串转化为整数: * @问题: 把字符串转化为整数* 题目描述* 将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返 ...
- 【mysql】str_to_date()字符串转化为日期类型
前言 mysql 5.7.31 字符串转化为日期类型 SELECT str_to_date('2021-05-07', '%Y-%m-%d'); /*2021-05-07*/ SELECT str_t ...
最新文章
- 内存回收的一些基本方法
- 【 C 】指针数组案例分析(const的作用)
- vue可视化拖拽生成工具_vue实现可视化可拖放的自定义表单的示例代码
- 【408预推免复习】计算机组成原理之系统总线
- 9.JAVA之GUI编程列出指定目录内容
- 2007年10月14日的日记
- 前台如何解析json格式 以及后台如何生成json格式
- Linux下C语言使用openssl库进行MD5校验
- 中国移动研究院人力群面
- ORM定制的几点注意事项
- 大学生创新创业实务 复习题(无答案)
- 浅谈互联网寒冬Android进阶之路
- simpson公式matlab实现,数值分析复化梯形公式复化Simpson公式MATLAB程序
- SolidWorks学习笔记5创建基准面,基准线,基准点
- QQ邮箱疯狂的附件:别人笑我太疯癫 我笑别人看不穿
- 怎么把pdf转换成ppt直接进行编辑
- 免费使用OriginPro学习版
- matlab中Cci,CCI指标实战操作中使用技巧
- 以太坊合并后,矿工们要失业了吗?
- css实现三角形加文字