var express = require('express'); var router = express.Router(); var phantom = require('phantom'); var web2img = (url, res, dataType, width, height) => { phantom.create().then(function (ph) { ph.createPage().then((page) => { var settings = { // operation: "POST", encoding: "utf8" }; page.open(url, settings).then((status) => { console.log(status); var fmt = 'JPEG'; if (status == 'success') { page.property('viewportSize', {width: width || 540, height: height || 960}); page.renderBase64(fmt).then((data) => { if (dataType == 0) { res.json({code: 1, data: "data:image/png;base64," + data}); } else if (dataType == 1) { res.send("data:image/png;base64," + data); } else if (dataType == 2) {//文件输出 var imageBuffer = new Buffer(data, 'base64'); res.send(imageBuffer); } }); } else { res.json({code: 0, msg: '生成图片异常'}); } ph.exit(); }); }); }); }; router.all('/web2img', function (req, res, next) { let url = req.query.url; let width = req.query.width; let height = req.query.height; let dataType = req.query.dataType || 0; web2img(url, res, dataType, width, height); }); module.exports = router;
来源:oschina
链接:https://my.oschina.net/loyin/blog/3214951