<html> <head> <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> </head> <body> <div style="float: left"><textarea id="txt" style="width: 450px; height: 400px;">如果您的长微博字数超过了140个字的限制,在这里输入微博内容,点击右方的“生成图片”,鼠标右击右边“文字”,“图片另存为...”,保存图片后,就可以直接发到微博里了,赶紧试试吧!</textarea></div> <div style="width: 200px; height: 100px; float: left; clear: right"> <table> <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> </table> </div> <canvas id="canvas" style="display:block"></canvas> <div style="margin-left: 650px"><img id="img" style="border: 1px solid" /></div> <script> changeColor(); </script> </body> </html>
评论已关闭!