JavaScript-PDFKit:PNG的未知图像格式错误
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了JavaScript-PDFKit:PNG的未知图像格式错误,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1959字,纯文字阅读大概需要3分钟。
内容图文
![JavaScript-PDFKit:PNG的未知图像格式错误](/upload/InfoBanner/zyjiaocheng/661/7871ff6f786e40a5a480c20db6f0be5e.jpg)
我在浏览器中使用的是PDFKit的预构建版本,当尝试添加PNG时,出现以下错误:
Uncaught Error: Unknown image
PDFImage.open format.util.js:546
module.exports.image deflate.js:773
img.onload PDFrenderer.js:195
我在服务器上将图像转换为PNG(以将其裁剪为圆圈),服务器返回的图像的mime类型为“ image / png”.我不确定我用来将PNG转换为ArrayBuffer的方法是否不正确.
这是我用来获取PNG并将其转换为ArrayBuffer的代码:
var img = new Image, ctxData;
img.onError = function () {
throw new Error('Cannot load image: "' + url + '"');
}
img.onload = function () {
var canvas = document.createElement('canvas');
document.body.appendChild(canvas);
canvas.width = img.width;
canvas.height = img.height;
var ctx = canvas.getContext('2d');
ctx.drawImage(img, 0, 0);
ctxData = canvas.toDataURL('image/png').slice('data:image/png;base64,'.length);
ctxData = atob(ctxData);
document.body.removeChild(canvas);
var buffer = [];
for (var i = 0, l = ctxData.length; i < l; i++) {
buffer.push(ctxData.charCodeAt(i));
buffer._isBuffer = true;
buffer.readUInt16BE = function (offset, noAssert) {
var len = this.length;
if (offset >= len) return;
var val = this[offset] << 8;
if (offset + 1 < len)
l |= this[offset + 1];
return val;
}
}
pdf.image(buffer);
}
img.src = url;
当此行从
ctxData = canvas.toDataURL('image/png').slice('data:image/png;base64,'.length);
至
ctxData = canvas.toDataURL('image/jpeg').slice('data:image/jpeg;base64,'.length);
但是我需要能够传递PNG,以便可以将圆形图像放置在任何背景上.
我还尝试传递完整的网址(例如’http://mysite.dev/userimages/1234/roundavatar.png‘),但是随后出现以下错误:
Uncaught TypeError: undefined is not a function
PDFImage.open util.js:535
module.exports.image deflate.js:773
有没有人成功通过浏览器将PNG添加到PDFkit,如果使用了哪种方法?
解决方法:
我找到了一个根据此https://github.com/devongovett/pdfkit/blob/master/lib/image.coffee的解决方案,只需确保将您的png文件命名为以.PNG结尾的大写字母,它对我有用.
内容总结
以上是互联网集市为您收集整理的JavaScript-PDFKit:PNG的未知图像格式错误全部内容,希望文章能够帮你解决JavaScript-PDFKit:PNG的未知图像格式错误所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。