Tiven

Tiven

博观而约取,厚积而薄发

天问的个人网站(天问博客),专注于Node.js、Vue.js、React、Vite、Npm、Nginx等大前端技术。不断学习新技术,记录日常开发问题,持续分享coding,极客开源,共同进步。生命不息,奋斗不止... [ hexo blog ]

JS 实现图片转 Base64


使用 ECharts 开发可视化图表,经常会遇到使用 base64 图片的情况,所以这里就使用 js 提供的 FileReader 对象实现一个图片转 base64 的小功能。

图片转base64

上代码

效果如上图所示:

<!DOCTYPE html>
<html lang="zh">
<head>
  <meta charset="UTF-8">
  <title>图片转base64</title>
</head>
<body>

<input type="file" id="image-input">
<br><br>
<textarea style="width: 800px;" id="base64-textarea" rows="20" cols="50"></textarea>

<script>
  // 创建一个函数,接受一个图片文件作为参数
  function convertImageToBase64(file) {
    return new Promise((resolve, reject) => {
      // 创建一个 FileReader 对象
      const reader = new FileReader();

      // 当读取完成时触发 onload 事件
      reader.onload = () => {
        // 将图片转换为 Base64 字符串
        const base64String = reader.result;
        resolve(base64String);
      };

      // 读取文件内容
      reader.readAsDataURL(file);
    });
  }

  // 选择图片文件的 input 元素
  const inputElement = document.getElementById('image-input');
  // 显示 Base64 字符串的文本域元素
  const textareaElement = document.getElementById('base64-textarea');

  // 监听 input 元素的 change 事件
  inputElement.addEventListener('change', async (event) => {
    // 获取选择的图片文件
    const file = event.target.files[0];

    try {
      // 调用函数将图片转换为 Base64
      const base64String = await convertImageToBase64(file);
      // 将 Base64 字符串显示在文本域中
      textareaElement.value = base64String;
    } catch (error) {
      console.error(error);
    }
  });

</script>
</body>
</html>

在线体验

<iframe style="width: 100%; height: 400px; box-sizing: border-box;" src="/demos/pic-to-base64.html" frameborder="0"> <p>Your browser does not support iframes.</p> </iframe>


欢迎访问:天问博客