[ js ] 图片与base64之间的互相转换

图片转base64

    // 图片转base64
    function imageToBase64(file) {
      return new Promise((resolve, reject) => {
        const fr = new FileReader()

        fr.readAsDataURL(file)
        fr.onload = () => {
          resolve(fr.result)
        }
      })
    }

base64转图片, 参数为base64的字符串, 类似下面这种

data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQU

 function base64ToImage(base64, fileName = '新建文件') {
      const [mime, data] = base64.split(";base64,");
      const byteCharacters = atob(data);
      const byteNumbers = new Array(byteCharacters.length);

      for (let i = 0; i < byteCharacters.length; i++) {
        byteNumbers[i] = byteCharacters.charCodeAt(i);
      }

      const byteArray = new Uint8Array(byteNumbers);
      const blob = new Blob([byteArray], { type: mime });

      // // 转换为 File 对象
      const file = new File([blob], `${fileName}.png`, { type: mime });
      return file
    }

 

posted @ 2025-05-28 14:27  深海里的星星i  阅读(39)  评论(0)    收藏  举报