首页 > 其他分享 >js图片格式转换(File、blob、二进制)

js图片格式转换(File、blob、二进制)

时间:2022-10-30 18:01:25浏览次数:72  
标签:canvas dom 图片格式 imgFile imgBlob blob var input js

一、File转Blob

​MDN文档 createObjectURL​​​​​

<button class="btn" onclick="openFile()">点我</button>
function openFile() {
var input = document.createElement('input');
input.type = 'file';
input.onchange = e => {
var imgFile = e.target.files[0];
var imgBlob = URL.createObjectURL(imgFile );
console.log('imgFile',imgFile);
console.log('imgBlob',imgBlob);
}
input.click();
}

js图片格式转换(File、blob、二进制)_2d

二、Blob转File

​MDN文档 File​​使用js将blob对象转file对象

var imgBlob = Blob-<<格式图片>>

var imgFile = new window.File([imgBlob], Math.random(), {
type: imgBlob.type,
});

三、Blob转二进制(base64)

// 获取 img 的 dom
function base64 (dom) {
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');
canvas.width = dom.width;
canvas.height = dom.height;
ctx?.drawImage(dom, 0, 0, dom.width, dom.height);
return canvas.toDataURL('image/png');
}

箴言:因为这些东西是非常简单的。不要抱怨自己学不会,那是因为你没有足够用心。



标签:canvas,dom,图片格式,imgFile,imgBlob,blob,var,input,js
From: https://blog.51cto.com/echohye/5807591

相关文章

  • springboot~写一个从excel读取json到List<Map>的方法
    excel读出来的json,它是一个字符串,不是标准json,所以需要对字符串字段进行解析复杂的excel如图通过poi解析json,通过jackson完成对字段的解析publicstaticList<Map<String,O......
  • cryptoJs DES_CBC_Pkcs7 转成 Java
    前端DES加密:importcryptoJsfrom'crypto-js';//DES加密functionencrypt(message,key,iv){//字符串转16进制constkeyHex=cryptoJs.enc.Utf8.parse......
  • js操作摄像头进行拍照
    MDN文档-getUserMedia介绍<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><m......
  • three.js 小车模型的基本结构
    基本结构代码import*asTHREEfrom'three'importStatfrom'three/examples/jsm/libs/stats.module'import{OrbitControls}from'three/examples/jsm/control......
  • 图解JS事件对象screenX、clientX、pageX, offsetX区别
    screenX、clientX、pageX和offsetX的区别1、screenX和screenY参照点:电脑屏幕左上角screenX:鼠标点击位置相对于电脑屏幕左上角的水平偏移量screenY:鼠标点击位置相对......
  • Vue学习笔记之vue.js 两个等号 == 和三个等号===的区别 数字0和空字符串
    vuejavascript等号=====数字0空字符串/**==用于比较两者是否相等,忽略数据类型===用于更严谨的比较,值和值的数据类型都需要同时比较*/<!DOCT......
  • JS之循环发送请求代码优化
    需求:将数组中的值作为参数,循环调用新增接口实现批量导入功能。因为接口调用有时间间隔限制,避免误操作,所以需要设置接口请求的间隔时间。原代码如下:constrecursive=(arr,......
  • js数据处理4
    <template><ModuleBox2title="数据趋势图"bgType="2":cityShow="true"moduleType="sjqs":styleObj="styleObj"><divclass="echarts-box">......
  • js获取当前日期的前七天
    //获取当前日期的前7天getDays(){letoneDay=24*60*60*1000letendTime=newDate(Date.now()-oneDay)endTime=this.formatterDate(en......
  • js一键切换dark模式
    js一键切换dark模式//初始化$(function(){lettheme=$.cookie('theme');if(theme=="dark"){$("body").addClass('dark');$("#theme").addClass('......