您现在的位置是:首页 > 正文

vue3 图片路径转base64 base64转file(二进制一般后台需要格式) file转base64

2024-04-01 04:51:04阅读 1

1.图片路径转64 

function imageUrlToBase64(url) {
  let homeImage = new Image(); 
  // 解决跨域问题 
  homeImage.setAttribute("crossOrigin", "anonymous");
  homeImage.src = url;
  //homeImage.onload为异步加载
  homeImage.onload = () => {
    let canvas = document.createElement("canvas");
    canvas.width = homeImage.width;
    canvas.height = homeImage.height;
    let context = canvas.getContext("2d");
    context.drawImage(homeImage, 0, 0, homeImage.width, homeImage.height);
    let quality = 0.8;
    // 这里的dataurl就是base64类型
    let dataURL = canvas.toDataURL("image/jpeg", quality);
    console.log(dataURL);
    // base64ToFile(dataURL, "moren"); // 这里是将base64转为file格式的方法
  };
}

1.1图片转file

function imageToBase64(homeImage) {
    let canvas = document.createElement("canvas");
    canvas.width = homeImage.width;
    canvas.height = homeImage.height;
    let ctx = canvas.getContext("2d");
    ctx.drawImage(homeImage, 0, 0, homeImage.width, homeImage.height);
    let ext = img.src.substring(homeImage.src.lastIndexOf(".") + 1).toLowerCase();
    let dataURL = canvas.toDataURL("image/jpeg" + ext);
    console.log(dataURL);
    return dataURL;
};

2.base64转file 

function base64ToFile(base64, fileName) {
  let arr = base64.split(",");
  let mime = arr[0].match(/:(.*?);/)[1];
  let bytes = atob(arr[1]);
  let n = bytes.length;
  let ia = new Uint8Array(n);
  while (n--) {
    ia[n] = bytes.charCodeAt(n);
  }
  return new File([ia], fileName, { type: mime });  // 将值抛出去
}

3.file转base64

function getBase64(file) {
  // 直接将处理结果返回
  return new Promise((resolve, reject) => {
    let reader = new FileReader();
    let fileResult = "";
    reader.readAsDataURL(file);
    reader.onload = () => {
      fileResult = reader.result.toString();
    };
    reader.onerror = (error) => {
      reject(error);
    };
    reader.onloadend = () => {
      resolve(fileResult);
    };
  });
}

网站文章

  • 在Vue.js中,什么是mixins?它们的作用是什么?

    在Vue.js中,什么是mixins?它们的作用是什么?

    在Vue.js中,什么是mixins?它们的作用是什么?

    2024-04-01 04:50:58
  • Node.js的事件循环

    什么是事件循环?让nodejs执行非阻塞I/O操作的就是事件循环–尽管事实上JavaScript是单线程–它无论何时都尽可能把操作丢给系统内核(相当于一个管家把任务都丢给手下)。因为大多数现代内核都是多线程,在这样的背景下内核就能处理多线程操作的执行。当这些操作中的一个完成后,内核会告诉nodejs以便适当的回调函数会被添加到轮询队列然后被执行。接下来我们将解释更多的细节在这篇文章中。事件循...

    2024-04-01 04:50:15
  • 剑指Offer(8)——跳台阶+变态跳台阶

    题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。/**要到达第n个台阶,第一次跳跃可以跳1个台阶或者两个台阶,如果第一次跳一个台阶,则后面的n-1个台阶有f(n-1)中跳法,如果第一次跳两个台阶,则后面的N-2个台阶有f(n-2)种跳法。则总共的跳法就是f(n)=f(n-1)+ f(n-2):*/pu...

    2024-04-01 04:50:07
  • MyBatis框架搭建快速入门

    MyBatis框架搭建快速入门

    MyBatis是一款优秀的开发,用于简化JDBC开发使开发人员只专注于SQL语句,而无需关注JDBC的API执行细节。

    2024-04-01 04:49:29
  • [NODE之18]Server

    /**http.Server 类 * Created by liyanq on 17/4/1. *//*express中没有对server类进行扩展,这点还比较好~~ * express框架中,app.listen是获得server的主要方法(可能是唯一的~),相当于http.createSever * 继承:server:Server->events.EventEmitter *

    2024-04-01 04:49:22
  • mongodb时间戳转换成格式化时间戳 热门推荐

    db.pay_order.find({"id":"5332336532"},{"tradeNo":true,"status&quo...

    2024-04-01 04:49:13
  • Hive中删除表数据的几种方式

    在内部表中 仅删除表中数据,保留表结构 方法一 truncate table 表名;(truncate用于删除所有的行,这个行为在hive元存储删除数据是不可逆的) truncate 不能删除外部表!...

    2024-04-01 04:49:08
  • 操作系统存储管理习题

    1.主存与辅存间频繁的页面置换现象被称为:系统抖动 2.把进程地址空间中使用的逻辑地址变成内存中物理地址的过程称为:重定位 3.在可变分区存储管理中,最佳适应分配算法要求对空闲区表项按尺寸从小到大进行...

    2024-04-01 04:48:27
  • Linux系统编程:进程信号的保存和阻塞

    Linux系统编程:进程信号的保存和阻塞

    本文介绍了信号的保存和阻塞的相关概念和操作方法

    2024-04-01 04:48:19
  • xss攻击

    xss攻击

    之前介绍过csrf攻击,那个是通过编写恶意页面来通过跨域请求来调用用户的api现在介绍的是xss攻击,这种攻击和csrf不同的是,恶意脚本是注入到了用户要访问页面的本身,而不是一个恶意页面xss攻击按攻击方式可以分为2类:通过url和通过数据库1.非持久性(一般通过url)举个栗子:正常发送消息:http://www.test.com/message.php?se...

    2024-04-01 04:48:12