zoukankan      html  css  js  c++  java
  • 图片转换为base64

         明天中秋了,先祝大家中秋快乐!哈哈,最近见有人在群里问怎么把图片转换成base64格式,之前刚好写过就把代码贴出来。

         主要用到canvas中的toDataURL方法

     1 <!DOCTYPE html>
     2 <html>
     3 
     4     <head>
     5         <meta http-equiv="content-type" content="text/html; charset=UTF-8">
     6         <title>Image to Base64 - jsFiddle demo by handtrix</title>
     7 
     8         <script type='text/javascript' src='//code.jquery.com/jquery-2.0.2.js'></script>
     9 
    10         <link rel="stylesheet" type="text/css" href="/css/result-light.css" rel="external nofollow">
    11 
    12         <style type='text/css'>
    13             @import url('//netdna.bootstrapcdn.com/bootstrap/3.1.0/css/bootstrap.min.css');
    14             body {
    15                 padding: 20px;
    16             }
    17         </style>
    18 
    19         <script type='text/javascript'>
    20             //<![CDATA[ 
    21             $(window).load(function() {
    22                 /** 
    23                 * convertImgToBase64 
    24                 * @param {String} url 
    25                 * @param {Function} callback 
    26                 * @param {String} [outputFormat='image/png'] 
    27                 * @author HaNdTriX 
    28                 * @example 
    29                 convertImgToBase64('http://goo.gl/AOxHAL', function(base64Img){ 
    30                 console.log('IMAGE:',base64Img); 
    31                 }) 
    32                 */
    33                 function convertImgToBase64(url, callback, outputFormat) {
    34                     var canvas = document.createElement('CANVAS');
    35                     var ctx = canvas.getContext('2d');
    36                     var img = new Image;
    37                     img.crossOrigin = '*';
    38                     img.onload = function() {
    39                         canvas.height = img.height;
    40                         canvas.width = img.width;
    41                         ctx.drawImage(img, 0, 0);
    42                         var dataURL = canvas.toDataURL(outputFormat || 'image/png');
    43                         callback.call(this, dataURL);
    44                         canvas = null;
    45                     };
    46                     img.src = url;
    47                 }
    48                 $('#img2b64').submit(function(event) {
    49                     var imageUrl = $(this).find('input[name=url]').val();
    50                     console.log('imageUrl', imageUrl);
    51                     convertImgToBase64(imageUrl, function(base64Img) {
    52                         $('.output')
    53                             .find('textarea')
    54                             .val(base64Img)
    55                             .end()
    56                             .find('a')
    57                             .attr('href', base64Img)
    58                             .text(base64Img)
    59                             .end()
    60                             .find('img')
    61                             .attr('src', base64Img);
    62                     });
    63                     event.preventDefault();
    64                 });
    65             }); //]]>
    66         </script>
    67     </head>
    68 
    69     <body>
    70         <h2>Input</h2>
    71         <form class="input-group" id="img2b64">
    72             <input type="url" name="url" class="form-control" placeholder="Insert an IMAGE-URL" value="http://upload.wikimedia.org/wikipedia/commons/4/4a/Logo_2013_Google.png" required>
    73             <span class="input-group-btn"> 
    74               <input type="submit" class="btn btn-default"> 
    75             </span>
    76         </form>
    77         <hr>
    78         <h2>Output</h2>
    79         <div class="output">
    80             <textarea class="form-control"></textarea><br>
    81             <a></a><br><br>
    82             <img><br>
    83         </div>
    84     </body>
    85 
    86 </html>

    可以直接复制到一个html中看下结果就是下边这样

  • 相关阅读:
    prometheus告警触发流程
    Mac 生成keystory文件
    web 登陆页面订做
    Gitlab 备份、恢复、平级迁移
    Gitlab 7.14.3 rpm 安装
    Mysql 启动方式
    Nginx 日志打印十六进制 x16x03x01x02x00x01x00x01xFCx03x03PxBB
    MacVim not work with perl 5.28
    Python 字符串前加u,r,b的含义
    免费 SSL 证书 certbot 配置
  • 原文地址:https://www.cnblogs.com/hsp-blog/p/5872249.html
Copyright © 2011-2022 走看看