网站首页 > 开源技术 正文
主要识别图片类型,然后进行转换;
function btoimg(buffer) {
var mime;
var a = new Uint8Array(buffer);
var nb = a.length;
if (nb < 4)
return null;
var b0 = a[0];
var b1 = a[1];
var b2 = a[2];
var b3 = a[3];
if (b0 == 0x89 && b1 == 0x50 && b2 == 0x4E && b3 == 0x47)
mime = 'image/png';
else if (b0 == 0xff && b1 == 0xd8)
mime = 'image/jpeg';
else if (b0 == 0x47 && b1 == 0x49 && b2 == 0x46)
mime = 'image/gif';
else
return null;
var binary = "";
for (var i = 0; i < nb; i++)
binary += String.fromCharCode(a[i]);
var base64 = window.btoa(binary);
var image = new Image();
//image.onload = onLoad;
image.id = "upload";
image.src = 'data:' + mime + ';base64,' + base64;
return image;
}
/*
var val = [...];
var img = btoimg(val);
document.getElementById("result").append(img);
*/
将image base64转换成File对象
function dataURLtoFile(dataurl, filename) {
var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
while(n--){
u8arr[n] = bstr.charCodeAt(n);
}
return new File([u8arr], filename, {type:mime});
}
/*
var f = dataURLtoFile('data:image/png;base64,......','test.png');
console.log(f);
*/
将byte[]转换成File对象
根据上面的思路直接对字节数组进行转换成FILE对象;
function btof(buffer, filename) {
var mime;
var a = new Uint8Array(buffer);
var nb = a.length;
if (nb < 4)
return null;
var b0 = a[0];
var b1 = a[1];
var b2 = a[2];
var b3 = a[3];
if (b0 == 0x89 && b1 == 0x50 && b2 == 0x4E && b3 == 0x47){
mime = 'image/png';
suffix = 'png';
}else if (b0 == 0xff && b1 == 0xd8){
mime = 'image/jpeg';
suffix = 'jpg';
}else if (b0 == 0x47 && b1 == 0x49 && b2 == 0x46){
mime = 'image/gif';
suffix = 'gif';
}else{
return null;
suffix = '';
}
return new File([a], filename+'.'+suffix, {type:mime});
}
- 上一篇: 制作一个展示网站发展的Gif(如何进行网站制作)
- 下一篇: 奇葩搞笑的GIF动图,果然男孩子都一样的
猜你喜欢
- 2024-11-17 游戏编程 | THREE.JS实现游戏操作界面
- 2024-11-17 如何处理 Node.js 中出现的未捕获异常?
- 2024-11-17 10个实用的JS技巧「值得收藏」(js快速入门教程)
- 2024-11-17 细品原生JS从初级到高级知识点汇总(四)
- 2024-11-17 奇葩搞怪GIF动图,这样恶搞小姐姐真的好吗?
- 2024-11-17 推荐三款正则可视化工具「JS篇」(正则视维)
- 2024-11-17 3种Javascript图片预加载的方法详解
- 2024-11-17 高性能多级多选级联组件开发「JS篇」
- 2024-11-17 44道JavaScript送命题(javascript逻辑题)
- 2024-11-17 web前端:原生js全动画企业官网,开机动画、切屏/分屏动画
本文暂时没有评论,来添加一个吧(●'◡'●)