【问题标题】:How to render/generate image according to text/string in nodejs?如何根据nodejs中的文本/字符串渲染/生成图像?
【发布时间】:2017-09-04 00:51:56
【问题描述】:

如何生成具有以下内容的字符串的图像:

  • 像素大小
  • 图片中字母的浮雕效果
  • 一种字体
  • 一种颜色
  • 以及其他不太重要的东西,我认为一旦我实现了上述目标,我就可以弄清楚:
    • 文字旋转
    • 投影

基本上,用户会发送一个关于他希望自己的形象如何的请求。

但是当我收到请求时,我应该如何使用 nodejs 来呈现 png 或 base64 url​​ 以将其发送回用户。是否有任何库或方法可以实现这一点。

我之前做过一些研究,但似乎没有一个框架可以帮助呈现带有浮雕之类的字体和文本样式的文本

【问题讨论】:

标签: node.js image-processing server-side


【解决方案1】:

你可以试试nodecanvas实现:https://github.com/Automattic/node-canvas

如果你使用浏览器 js 画布,基本上你可以“绘制”任何你想要的东西,但有些东西可能会有所不同

【讨论】:

    【解决方案2】:

    更新 - 这将包括更新图像的属性,而不是从图像中提取文本并进行更新 - 您可能需要一个图像分析库

    使用sharp库根据需要处理图像。 https://github.com/lovell/sharp http://sharp.dimens.io/en/stable/

    一个调整大小的简单示例(文档将展示如何在此之外进行您想要的更改):

    const request = require('request').defaults({ encoding: null });
    
    request.get(imgUrl, params, function (err, res, body) {
            sharp(body)
            .resize(params.width, params.height)
            .toFormat('jpeg')
            .toBuffer()
            .then((outputBuffer) => {
              // outputBuffer contains JPEG image data no wider than params.width and no higher
              // than params.height while maintaining quality of image.
              let output = "data:" + res.headers["content-type"] + ";base64," + new Buffer(outputBuffer).toString('base64');
              return output;
            });
    

    这里的输出将是base64图像

    【讨论】:

    • 我不想操作图像,我想从包含文本属性的对象(大小、样式、颜色、文本)。
    • 渲染我的意思是生成
    猜你喜欢
    • 2016-04-17
    • 1970-01-01
    • 1970-01-01
    • 2017-11-15
    • 1970-01-01
    • 2017-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多