img图片加载完成以及canvas转图片为base64编码

之前做项目有个图片转base64编码,我用的是html5的canvas进行转换的。很简单,其中涉及到一个知识点就是必须图片完全加载完成之后才能取到base64编码。

<!DOCTYPE html>

<html>

  <head>

    <title>MyHtml.html</title>

    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

    <meta http-equiv="description" content="this is my page">

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">

    

    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

<script type="text/javascript" src="jquery-1.4.2.min.js"></script>

  </head>

  

  <body>

    <img src="sleep.jpg"/>

    <button onclick="aa('eat.jpg');">惦记我</button>

    <script type="text/javascript">

    //创建一个canvas

var c=document.createElement("canvas");

//设置canvas宽高为图片宽高

c.width=540;c.height=258;

//将图片绘制到canvas,绘制成2D图像

var cxt=c.getContext("2d");

    function aa(imgsrc){

var img=new Image();

img.src=imgsrc;

img.onload=function(){//判断图片完全加载完之后再执行的内联函数,否则得到base64编码会有错误

cxt.drawImage(img,0,0);

//得到图片的base64编码数据

var dd=c.toDataURL();

//log出图片base64数据

$('img').attr("src",dd);//img的src直接输入base64图片则直接显示

//};

    }

    </script>

  </body>

</html>

相关推荐