JS 图片转Base64

时间:2023-12-19 15:10:50

JS 图片转Base64

有时候需要向HTML中插入一张图片,可苦于上线后找不到一个合适的网盘来存储这些图片,有没有一种办法能将图片转换成文字,然后直接插入HTML中呢,通过Base64编码就可以解决这个问题。

废话不多说直接上代码。不知道什么是Base64的请自行百度

JS 图片转Base64


JS 图片转Base64

图片转Base64 示例代码
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>JS 图片转Base64</title>
  6. <script src="//cdn.bootcss.com/jquery/2.2.0/jquery.min.js"></script>
  7. <script>
  8. function run(input_file,get_data){
  9. /*input_file:文件按钮对象*/
  10. /*get_data: 转换成功后执行的方法*/
  11. if ( typeof(FileReader) === 'undefined' ){
  12. alert("抱歉,你的浏览器不支持 FileReader,不能将图片转换为Base64,请使用现代浏览器操作!");
  13. } else {
  14. try{
  15. /*图片转Base64 核心代码*/
  16. ];
  17. //这里我们判断下类型如果不是图片就返回 去掉就可以上传任意文件
  18. if(!/image\/\w+/.test(file.type)){
  19. alert("请确保文件为图像类型");
  20. return false;
  21. }
  22. var reader = new FileReader();
  23. reader.onload = function(){
  24. get_data(this.result);
  25. }
  26. reader.readAsDataURL(file);
  27. }catch (e){
  28. alert('图片转Base64出错啦!'+ e.toString())
  29. }
  30. }
  31. }
  32. $(function () {
  33. $("input").change(function () {
  34. run(this, function (data) {
  35. $('img').attr('src',data);
  36. $('textarea').val(data);
  37. });
  38. });
  39. });
  40. </script>
  41. </head>
  42. <body>
  43. <input type="file">
  44. <hr>
  45. <img style="max-height: 300px; height: 8em; min-width:8em;">
  46. <hr>
  47. <textarea style="display: block; width: 100%;height: 30em;"></textarea>
  48. </body>
  49. </html>

Base64图片的使用

Base64格式
data:[][;charset=][;base64],
Base64 在CSS中的使用
.demoImg{ background-image: url("data:image/jpg;base64,/9j/4QMZRXhpZgAASUkqAAgAAAAL...."); }
Base64 在HTML中的使用
<img width="40" height="30" src="data:image/jpg;base64,/9j/4QMZRXhpZgAASUkqAAgAAAAL...." />