一来工作需要,而来我也一直有兴趣自己写一个长微博工具,其实思想很简单,首先文转图,然后拼图。下面来贴上自己写的文转图代码,以供大家研究参考。

下面这段是我封装的实现文转图的代码,里边对某个字体实际占的位符没有深入研究,按照微博的宽度440,我测试了字体为16,20,28 的占位符,有兴趣的朋友可以告知一下,有什么规律.

       /// <summary>/// 文字转图/// </summary>/// <param name="text">文字</param>/// <param name="fc">文字颜色</param>/// <param name="fb">图片背景色</param>/// <param name="fs">字体类型,比如正常,加粗,倾斜</param>/// <param name="ft">文字类型,比如楷体_GB2312</param>/// <param name="fn">默认为1;  文字类型名称。1:楷体_GB2312;</param>/// <param name="fs">默认为1;  文字大小。1:16;2:20;3:24;</param>/// <param name="hasBlank">默认为1;  是否开始空俩格。1:不空;2:空;</param>/// <returns></returns>public Bitmap WordToImg(string text,Color fc,Color fb,FontStyle ft,int fn=1,int fs=2,int hasBlank=1){if (string.IsNullOrEmpty(text))return null;int number = 0;string font_name = "";int font_size = 14;int line_add = 30;int font_size_lenth = 21;switch (fn){case 1:font_name = "宋体";break;case 2:font_name = "楷体";break;}switch (fs){case 2:font_size = 16;line_add = 35;font_size_lenth = 23; //楷体是25break;case 3:font_size = 20;line_add = 45;font_size_lenth = 28; //楷体是31break;case 4:font_size = 24;line_add = 55;font_size_lenth = 35;break;}int row_lentht = Math.Abs(440 / font_size_lenth);List<string> list = StringWrap(text, row_lentht, hasBlank, out number);Bitmap image = new Bitmap(440, (number+1)*line_add);Graphics gh = Graphics.FromImage(image);int line = 15;gh.Clear(fb);Font font = new Font(font_name, font_size, (ft));System.Drawing.Drawing2D.LinearGradientBrush brush = null;for (int i = 0; i < number; i++){try{brush = new System.Drawing.Drawing2D.LinearGradientBrush(new System.Drawing.Rectangle(0, 0, image.Width, image.Height), fc, Color.DarkRed, 1.2f, true);gh.DrawString(list[i], font, brush, 20, line);line = line + line_add;}catch (Exception e){Console.WriteLine(e.ToString());}}image.Save(@"D:\工作\调试\ConvertWordsToImg\aa.jpg", ImageFormat.Png);return image;}

好啦,下面贴上,将一段文字转换成图片能容纳的一定长度

 /// <summary>/// 将一句话按指定是字符数切开/// </summary>/// <param name="str"></param>/// <param name="num">指定每行字符数</param>/// <param name="hasBlank">是否开始空俩个</param>/// <returns></returns>public List<string> StringWrap(string str, int num,int hasBlank, out int count){List<string> list = new List<string>();Regex reg = new Regex(@"^[a-z0-9]+{1}quot;);double number = 0;int _count = 0;int _number=0;StringBuilder sb = new StringBuilder();if (hasBlank == 1)sb.Append("    ");try{foreach (char c in str){if (_number == 0 && hasBlank == 1)number += 2;bool result = reg.IsMatch(c.ToString());if (result)number += 0.5;elsenumber++;sb.Append(c.ToString());if (number >= num){list.Add(sb.ToString());sb = new StringBuilder();number = 0;_count++;}if (_number == str.Length-1){list.Add(sb.ToString());_count++;}_number++;}}catch {count = 0;return null;}count = _count;return list;}

下面来贴上多张图片按次序拼图的代码,对于图片宽度小于440,按居中处理,大于的超出部分不处理

   /// <summary>/// 微博专用图片合成,因为微博图片宽度限制小于440,我们统一处理为440/// </summary>/// <param name="img"></param>/// <returns></returns>public Bitmap SynthesisImgW(List<Bitmap> bl){int height = 0;foreach (Bitmap map in bl){height += map.Height+10;}Bitmap image = new Bitmap(440, height-10);Graphics gh = Graphics.FromImage(image);gh.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;gh.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;gh.Clear(Color.White);int y = 0;foreach (Bitmap map in bl){gh.DrawImage(map, 0,y,map.Width,map.Height);y += map.Height+10;}return image;}

好了,这三个方法,让你轻松实现文转图,拼图功能,其实很简单,本人也不是什么代码高手,就是好奇写着玩,代码级别哪有错误还请各位看客多多海涵,也欢迎相互交流。

长微博工具,文转图 C#实现相关推荐

  1. 生成长微博(文转图)方法

    #region 长微博生成图片处理合心方法public string ConvertTextFileToImage(String text, String imageFile){System.Draw ...

  2. 长微博android,Android 上最强大的长微博工具:BlackLight 长微博

    手机端的长微博工具屈指可数,Android 上的更是寥寥无几.除却官方客户端那不太像样的长微博功能之外,能够将长文字转换成图片的恐怕就只有锤子便签和 Smooth 了.BlackLight 作为新晋的 ...

  3. 用长微博工具发布长微博

    发布长微博的工具 原来的长微博网址打不开了,不知道原作者的新长微博地址是什么? 有个朋友经常要使用长微博工具,我就花了点时间试着写了一个新的长微博工具,也就是所谓的长微博生成器. 长微博的优点 由于大 ...

  4. 长微博工具-长微博生成器-新浪长微博-腾讯长微博-长微博转换器

    长微博,长微博生成器,长微博工具,新浪长微博,长微博转换器,新浪长微博生成器,新浪长微博工具,文字转换器 http://www.cwbgj.com/ 这是一个新兴的词汇,是随着微博的发展才出现的.正常 ...

  5. 通过学习制作长微博工具来了解水印的制作,及EditText中的内容在图片中换行显示

    长微博工具非常有用,140字的要求可能阻止你写更多的内容,于是长微博工具应运而生,虽然网上有很多长微博工具,但是我都不是很满意,所以自己想做一个,通过做这个长微博工具,我学习到了很多东西,有两个难点, ...

  6. 长微博工具开发者称遭新浪无故封号

    网易科技讯 6月2日消息,有开发者通过微博表示,其开发运营的长微博工具和ID账号遭到新浪的无故封杀,并认为这与新浪想推出长微博应用.打压竞争对手有关. "无耻的新浪为了自己做长微博(看我火了 ...

  7. 新浪新版微博邀请码 (持续更新最新) - 长微博工具

    新版新浪微博邀请码大放送 - 长微博工具 长微博工具 :  http://www.cwbgj.com --------------------------------------------- htt ...

  8. 鹿定制与国际大牌西服的10点区别?丨新浪官方长微博工具

    鹿定制与国际大牌西服的10点区别?丨新浪官方长微博工具 鹿定制与国际大牌西服的10点区别?丨新浪官方长微博工具 鹿定制与国际大牌西服的10点区别? posted on 2014-08-23 19:48 ...

  9. 一个不错的长微博工具(文图微博)

    今天找到一个不错的文字转图片工具,可以发长微博! www.weituweibo.com(文图微博) 可以支持自定义字体大小.加粗和颜色. 就是速度慢了点,应该是放在国外的原因.

最新文章

  1. 索尼同意支付数百万美元和解 PS3,Linux 集体诉讼
  2. 手机开启apache_微信否认“年终奖人均280万”;MySQL 8.0.14 稳定版发布;支付宝集五福昨开启,一天29万人集齐......
  3. animation的6个属性
  4. login组件的两种用法_vue2组件系列第四十节:NoticeBar 通告栏
  5. javascript用户登录_SAP HANA XS的JavaScript安全事项
  6. PHP页面中嵌套go语言,go语言嵌套类型的使用细节
  7. LeetCode - Maximum Subarray
  8. 不用AJAX实现前台JS调用后台C#方法(小技巧)
  9. PUSHA/POPA
  10. 哀悼与感动同在[转载]
  11. leetcode 397 整数替换
  12. 调整Virtual Box硬盘大小
  13. python输出的格式_将Python输出格式化为行
  14. 使用Koa2重构博客项目
  15. 【vim编辑器的使用】
  16. android 默认分辨率是多少合适,Bluestacks分辨率修改多少合适
  17. docker运行教程
  18. 计算机器前传:结绳、算筹、算盘等手动计算发展史(公号回复“手动计算”下载PDF资料,欢迎转发、赞赏、支持科普)
  19. 图灵大会圆满落幕,码隆科技与全球最强大脑同台
  20. java fifo lifo_栈方法 LIFO - 队方法 FIFO

热门文章

  1. 整数有约 | AI智能篆刻:活学活用,让传统文化“潮”起来
  2. 2022-2028全球汽车压力传感器行业发展现状调研及投资前景分析报告
  3. Kali2019安装ShuiZe|水泽-自动化信息收集工具安装
  4. MUI 支付案例(支付宝/微信)
  5. 公众号接收普通消息并回复
  6. python真假判断
  7. 传奇版本中云客户端状态在哪里去掉?
  8. mysql 查询后根据值的不同进行判断与修改,SQL中的条件判断语句(case when zhen)用法
  9. 解决win10下安装typescript后仍报“tsc不是内部或外部命令...”的问题
  10. python飞机大战简单的实现