作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Node Canvas 裁剪背景图像,但我遇到了以下代码的一些奇怪错误。
错误是“[错误:写入输出流时出错]”。如果我使用 node-canvas 存储库中的裁剪示例代码,则会收到此错误“空 JPEG 图像(不支持 DNL)”
/* */
var cnv = new Canvas(w,h),
ctx = cnv.getContext('2d'),
original = '/img/pages/'+page+'/background.jpg';
ctx.imageSmoothingEnabled = true;
fs.readFile('public/'+original, function( err,image){
if (err) {
res.status(404)
.send('Not found');
}
else {
var
img = new Image;
img.src = image;
ctx.drawImage(img,
Math.abs( (w-img.width)/2),0,
w,h,
0,0,
w,h
);
cnv.toBuffer(function(err, buf){
console.log(err);
if( err){
res.status(500)
.send('Error generating image buffer');
}
else {
fs.writeFile('public'+resampled, buf, function(err){
console.log(err);
console.log('Resized and saved in %dms', new Date - start);
returnResampledFile( res,page,w,h);
});
}
});
}
});
最佳答案
libjpeg
(可能在幕后使用)不支持 JPEG 文件中的 DNL 标记( see this document, towards the end, for an explanation )。包含此类标记的文件将声明为零高度(因此是 Empty JPEG image
消息)。我的猜测是您的输入文件使用此类标记,从而触发错误。
至于解决方案:尝试找到一个 JPEG 阅读器,它可以读取这些类型的文件,并将它们转换回 libjpeg 可以处理的内容。恐怕我不能推荐任何东西,因为我自己从未遇到过这个问题。
关于node.js - 空 JPEG 图像(不支持 DNL) Node Canvas ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16470268/
Autoconfig 手册规定注释行可以以 dnl 或 # 开头。 它们之间有什么区别,有什么理由在任何情况下使用其中一个而不是另一个?还是纯粹是口味问题? 最佳答案 在configure.ac 中,
我正在尝试使用 Node Canvas 裁剪背景图像,但我遇到了以下代码的一些奇怪错误。 错误是“[错误:写入输出流时出错]”。如果我使用 node-canvas 存储库中的裁剪示例代码,则会收到此错
我是一名优秀的程序员,十分优秀!