我有一个 Node.js 服务器,它从数据库(mongodb)中的图像(640x640)动态生成并提供小(200x200)缩略图。我正在使用node-imagemagick模块进行缩略图。
我的代码大约 95% 的时间都在工作;客户端 (iOS) 上大约有 20 个(或更少)缩略图图像损坏,它报告:
JPEG Corrupt JPEG 数据:数据段过早结束
对于损坏的图像,客户端显示图像的前 50% - 75%,其余部分被截断。
该行为是不确定的,并且损坏的特定图像会根据每个请求进行更改。
我正在使用以下代码调整图像大小并输出缩略图:
im.resize({
srcData: image.imageData.buffer,
width: opt_width,
}, function(err, stdout) {
var responseHeaders = {};
responseHeaders['content-type'] = 'image/jpeg';
responseHeaders['content-length'] = stdout.length;
debug('Writing ', stdout.length, ' bytes.');
response.writeHead(200, responseHeaders);
response.write(stdout, 'binary');
response.end();
});
这里有什么问题?
笔记: