javascript – 如何在jpeg或png格式的字节数组中在画布上绘制图像
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 如何在jpeg或png格式的字节数组中在画布上绘制图像,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1561字,纯文字阅读大概需要3分钟。
内容图文
![javascript – 如何在jpeg或png格式的字节数组中在画布上绘制图像](/upload/InfoBanner/zyjiaocheng/701/8c36a65abfd04e878f1e40550da6c938.jpg)
就像标题所说,我有一个表示图像内容的字节数组(可以是jpeg或png).
我想在常规画布对象上绘制它
<canvas id='thecanvas'></canvas>
我怎样才能做到这一点?
更新我试过这个(不成功):
(imgData是一个png作为字节数组“按原样”通过WebSockify发送给客户端)
function draw(imgData) {
"use strict";
var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");
var rdr = new FileReader();
var imgBlob = new Blob([imgData], {type: "image/png"});
rdr.readAsBinaryString(imgBlob);
rdr.onload = function (data) {
console.log("Filereader success");
var img = new Image();
img.onload = function () {
console.log("Image onl oad");
ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
};
img.onerror = function (stuff) {
console.log("Img one rror:", stuff);
};
img.src = "data:image/png;base64," + window.btoa(rdr.result);
};
}
我总是到达img.onerror()
此外,在我的文件系统上使用HEX编辑器读取文件后,我可以看到字节数组与原始文件相同.
解决方法:
这个作品:
function draw2(imgData, coords) {
"use strict";
var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");
//var uInt8Array = new Uint8Array(imgData);
var uInt8Array = imgData;
var i = uInt8Array.length;
var binaryString = [i];
while (i--) {
binaryString[i] = String.fromCharCode(uInt8Array[i]);
}
var data = binaryString.join('');
var base64 = window.btoa(data);
var img = new Image();
img.src = "data:image/png;base64," + base64;
img.onload = function () {
console.log("Image onl oad");
ctx.drawImage(img, coords[0], coords[1], canvas.width, canvas.height);
};
img.onerror = function (stuff) {
console.log("Img one rror:", stuff);
};
}
内容总结
以上是互联网集市为您收集整理的javascript – 如何在jpeg或png格式的字节数组中在画布上绘制图像全部内容,希望文章能够帮你解决javascript – 如何在jpeg或png格式的字节数组中在画布上绘制图像所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。