【发布时间】:2016-02-01 18:43:50
【问题描述】:
我正在尝试制作一个 Twitter 机器人,它可以生成随机的 rgb 颜色,创建此颜色的图片并发布推文。我创建了一段可以生成和推文随机 rgb 值的 JS 和一段可以生成随机颜色图片的 javascript,但我不知道如何将两者结合起来。
我的问题是我无法在没有文档的情况下生成 PNG 图像。如果我使用 Node.JS 在服务器上运行脚本,则没有可在其中创建画布的文档。是否有任何其他方法可以创建 png 图片(可能通过将其临时保存到服务器)并将其附加到推文?
感谢您的帮助!
这是我用于发送随机值的代码:
var Twit = require('twit')
var T = new Twit({
consumer_key: '###',
consumer_secret: '###',
access_token: '###',
access_token_secret: '###'
})
function tweet() {
//Generate a random colour
var r = Math.floor((Math.random() * 256));
var g = Math.floor((Math.random() * 256));
var b = Math.floor((Math.random() * 256));
var color = "rgb("+r+","+g+","+b+")";
// tweet that colour
T.post('statuses/update', { status: color });
}
setTimeout(tweet, 30000);
这是一个在网页上生成随机颜色的PNG文件的JS脚本:
var r = Math.floor((Math.random() * 256));
var g = Math.floor((Math.random() * 256));
var b = Math.floor((Math.random() * 256));
var color = "rgb("+r+","+g+","+b+")";
var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');
// draw box
context.beginPath();
context.moveTo(0, 00);
context.lineTo(0, 800);
context.lineTo(800, 800);
context.lineTo(800, 0);
context.closePath();
context.lineWidth = 5;
context.fillStyle = color;
context.fill();
// save canvas image as data url (png format by default)
var dataURL = canvas.toDataURL();
// set canvasImg image src to dataURL
// so it can be saved as an image
document.getElementById('canvasImg').src = dataURL;
【问题讨论】:
标签: javascript node.js canvas