gpt4 book ai didi

node.js - 将使用node-gd生成的图像发送到客户端

转载 作者:太空宇宙 更新时间:2023-11-04 02:56:53 24 4
gpt4 key购买 nike

编辑:解决方案是使用

res.set('Content-Type', 'image/png');
res.end(data, 'binary').
<小时/>

我正在尝试使用node-gd动态生成图像。我的应用程序是node.js/express。

此代码成功生成图像:

    //create image
var gd = require('node-gd');
var img = gd.createSync(200, 80);
img.colorAllocate(0, 255, 0);

img.savePng('../test.png', 0, function(error) {
if (error) throw error;
img.destroy();
})

但它将图像保存到文件中。我不一定要保留生成的图像,只需将其发送给客户端即可。

我希望我能做到

res.send(img);

但这只是返回一个包含图像元数据的对象。

编辑:尝试输出指针:

    //create image
var gd = require('node-gd');
var img = gd.createSync(200, 80);
img.colorAllocate(0, 255, 0);

var imageData = img.pngPtr();
res.set('Content-Type', 'image/png');
console.log(imageData);
res.send(imageData);

在我的浏览器中我得到:

图像“URLHERE”无法显示,因为它包含错误。

该文件不是空的,大约有 138 个字节,而实际图像大约有 2kb。

如果我记录 PNG 数据(我没想到它是可读的,但仍然如此):

PNG

IHDRÈPf£¨óPLTEÿ4^À¨ pHYsÄÄ+IDATHc`£`Q0
FÁ( ½1üñIEND®B`

最佳答案

您可以通过 API 使用图像的指针(缓冲区)。

res.set('Content-Type', 'image/png');
res.send( img.pngPtr() );

您可以在official documentation中阅读有关功能的更多信息。

关于node.js - 将使用node-gd生成的图像发送到客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40773492/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com