<script type="text/javascript">
function $(id) {
return document.getElementById(id);
}
function textToImg() {
var len = $('len').value || 30;
var i = 0;
var fontSize = $('fontSize').value || 15;
var fontWeight = $('fontWeight').value || 'normal';
var txt = $("txt").value;
var canvas = $('canvas');
if (txt == '') {
alert('请输入文字!');
$("txt").focus();
}
if (len > txt.length) {
len = txt.length;
}
canvas.width = fontSize * len;
canvas.height = fontSize * (3 / 2)
* (Math.ceil(txt.length / len) + txt.split('\n').length - 1);
var context = canvas.getContext('2d');
context.clearRect(0, 0, canvas.width, canvas.height);
context.fillStyle = $("showcolor").innerHTML;
context.font = fontWeight + ' ' + fontSize + 'px sans-serif';
context.textBaseline = 'top';
canvas.style.display = 'none';
console.log(txt.length);
function fillTxt(text) {
while (text.length > len) {
var txtLine = text.substring(0, len);
text = text.substring(len);
context.fillText(txtLine, 0, fontSize * (3 / 2) * i++,
canvas.width);
}
context.fillText(text, 0, fontSize * (3 / 2) * i, canvas.width);
}
var txtArray = txt.split('\n');
for ( var j = 0; j < txtArray.length; j++) { fillTxt(txtArray[j]); context.fillText('\n', 0, fontSize * (3 / 2) * i++, canvas.width); } var imageData = context.getImageData(0, 0, canvas.width, canvas.height); var img = $("img"); img.src = canvas.toDataURL("image/png"); } function changeColor() { var c = $("text"); var ctx = c.getContext("2d"); var red = $("red"); var green = $("green"); var blue = $("blue"); ctx.fillStyle = "rgb(" + red.value + "," + green.value + "," + blue.value + ")"; $("showcolor").innerHTML = ctx.fillStyle; ctx.fillRect(0, 0, 100, 100); //$('canvas').getContext('2d').fillStyle=$("showcolor").innerHTML; } </script>
<div>
<textarea id="txt" style="width:450px;height:400px;">如果您的长微博字数超过了140个字的限制,在这里输入微博内容,点击右方的“生成图片”,鼠标右击右边“文字”,“图片另存为...”,保存图片后,就可以直接发到微博里了,赶紧试试吧! </textarea>
</div>
<div style="width:200px;height:100px;float:left;clear:right;">
<table>
<tbody>
<tr>
<td>
<label>字体大小:</label><input size="4" id="fontSize" value="15" />px
</td>
</tr>
<tr>
<td>
<label>字体精细:</label><select id="fontWeight"> <option value="normal">正常</option>
<option value="bold">粗</option>
</select>
</td>
</tr>
<tr>
<td>
<label>每行显示:</label><input size="4" id="len" value="40" />个字
</td>
</tr>
<tr>
<td>
<canvas id="text" width="100" height="100"></canvas>
<p>
Red: <input type="range" id="red" min="0" max="255" value="0" onchange="changeColor();" />
</p>
<p>
Green:<input type="range" id="green" min="0" max="255" value="0" onchange="changeColor();" />
</p>
<p>
Blue: <input type="range" id="blue" min="0" max="255" value="0" onchange="changeColor();" />
</p>
目前的颜色:<span id="showcolor"></span>
</td>
</tr>
<tr>
<td>
<button onclick="textToImg();;">生成图片</button>
</td>
</tr>
</tbody>
</table>
</div>
<canvas id="canvas" style="display:block;"></canvas>
<div>
<img id="img" style="border:1px solid;" />
</div>
<script>
changeColor();
</script>

HTml js 生成图片的更多相关文章

  1. 调用 js 生成图片二维码

    一.js 生成二维码: 首先,需要引用 jQuery 和 jquery.qrcode.js.然后: //生产二维码 $("#qrcodeCanvas").qrcode({ rend ...

  2. js生成图片

    var image = new Image(); var c = document.getElementById("myCanvas"); var ctx = c.getConte ...

  3. Sticker.js生成图片或者页面元素“速干贴”效果

    ​在线演示 本地下载 真实的效果,真的非常好玩!

  4. 关于html2canvas跨域设置

    最近在做js生成图片的功能,因为有的商户logo图片在阿里云oss存储的,所以遇到了跨域的问题.跨域的话可以在服务器端设置header, 跨域的话目前的解决方案是服务端设置,Access-Contro ...

  5. java-pdf转word

    注:原文来至 < java-pdf转word   > 一: java Pdf 文字 转 Word 废话不说,直接上图 很简单的用法:1.new个PDFBox对象2.调用pdfToDoc() ...

  6. BuaaRedSun团队博客目录——北航社团项目

    目录 一.Scrum Meeting 1. Alpha 2. Beta 3. Gamma 二.测试报告 三.发布说明 四.技术博客 后端 前端 五.习得的软工原理/方法/技能? Alpha Beta ...

  7. Beta/Gamma事后分析

    目录 设想和目标 计划 资源 变更管理 设计/实现 测试/发布 团队的角色,管理,合作 总结 对照敏捷开发的原则, 你觉得你们小组做得最好的是哪几个原则? 请列出具体的事例. 照片 设想和目标 我们的 ...

  8. 【Gamma】“北航社团帮”展示博客

    目录 团队介绍 项目愿景 整个项目的预期典型用户 功能展示 原预期用户数量 项目使用情况数据分析 用户量变化 学生认证人数 社长认证人数 入社申请数 活动发布 新闻发布 网页端使用情况 小程序打开次数 ...

  9. 移动端js模拟截屏生成图片并下载功能的实现方案

    一.根据PM需求如下: 移动端wap 实现将二维码生成图片下载至用户手机相册保存 二.根据现有思路: 1.使用第三方工具html2canvas,将页面中指定范围的dom转换为canvas 2.随后使用 ...

随机推荐

  1. Java Jsoup Spider抓取数据入库

    这里从车商网上进行数据抓取,请保持良好的职业道德不要将数据用于商业途径.工信部官网有汽车方面的公告目录,那里有最全的pdf或word数据,鉴于word和pdf解析的繁琐和耗时,我暂时用这个网站的数据进 ...

  2. CSS3进度条 和 HTML5 Canvas画圆环

    看到一些高大上的进度条插件,然后想自己用CSS写.经过搜索资料之后,终于成功了.为了以后方便拿来用,或者复习.将代码贴出. HTML代码: 只需要两个div,外面的为一个有border的div id为 ...

  3. SpringMvc自动代理

    自动配置的好处是不需要挨个 实现[org.springframework.aop.framework.ProxyFactoryBean] ,只需要 advisor 配置和 <bean id=&q ...

  4. 自己编译GCC(compile gcc from source)

    有的时候,我不是第一次遇到这种时候,编译内核时报出编译器BUG.如果是ubuntu还好一点,默认软件仓库中就有好几个GCC,换一换总能找到一个好使的,实在不行还有个Tooltrain的ppa,但Deb ...

  5. 基于RedHat发行的Apache Tomcat本地提权漏洞

    描述 Tomcat最近总想搞一些大新闻,一个月都没到,Tomcat又爆出漏洞.2016年10月11日,网上爆出Tomcat本地提权漏洞,漏洞编号为CVE-2016-5425.此次受到影响的主要是基于R ...

  6. excel表格定义导入到powerdesigner脚本

    打开powerdesigner,shift + ctrl + X 打开脚本窗口 输入执行的脚本,点 run 即可. 简单的导入Excel脚本 '开始 Option Explicit Dim mdl ' ...

  7. ubuntu 12.10 笔记

    笔记 more ec_unitouch.log |grep Thread-4 筛选日志 打开命令行终端 ctrl + alt + t     查看版本号 : sudo lsb_release -a t ...

  8. ASP.NET动态网站制作(11)-- JQ(3)

    前言:这节课主要是讲CSS作业,然后继续讲jQuery. 内容: 1.css作业讲解. 2.jq设置元素样式:  (1)添加.删除css类别:$("div").addClass(& ...

  9. 【BZOJ3251】树上三角形 暴力

    [BZOJ3251]树上三角形 Description 给定一大小为n的有点权树,每次询问一对点(u,v),问是否能在u到v的简单路径上取三个点权,以这三个权值为边长构成一个三角形.同时还支持单点修改 ...

  10. Angular入门(一) 环境配置

    angular/cli 安装 ♦ npm uninstall -g angular-cli /cnpm install -g angular-cli ※采用npm安装失败: Missing write ...