html5 canvas图像保存为图片文件

利用html5 canvas定义图形绘制图像时,如何将源图像保存为图片?

     首先,其api中提供了toDataURL()方法,可将canvas图像保存为二进制文件:

      var dataURL =canvas.toDataURL();

      document.getElementById('canvasImg').src= dataURL;


     当然我们也可以直接通过image/octet-stream方式下载:

      var data =canvas.toDataURL("image/png").replace("image/png", "image/octet-stream");

     window.location.href = data;

     但是,这种方式只能按二进制保存,无法保存为指定类型的文件,比如xxx.png;要直接保存为文件xxx.png,单独在客户端是无法实现的。目前,只能先将该二进制数据发送到服务器端,然后再返回传给客户端供下载。

具体如下:

1.将canvas图像源数据上传到服务器:

    var canvasData = testCanvas.toDataURL("image/png");//jpg等格式类似

    var ajax =new XMLHttpRequest();

   ajax.open("POST",'save.php',true);

   ajax.setRequestHeader('Content-Type','application/upload');

   ajax.send(canvasData);



2.save.php:

if(isset($GLOBALS['HTTP_RAW_POST_DATA']))

{

$imageData=$GLOBALS['HTTP_RAW_POST_DATA'];

$filteredData=substr($imageData,strpos($imageData, ",")+1);

$unencodedData=base64_decode($filteredData);

$fp = fopen( 'test.png', 'wb' );

fwrite( $fp, $unencodedData);

fclose( $fp );

}


具体可参看:http://permadi.com/blog/2010/10/html5-saving-canvas-image-data-using-php-and-ajax/


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值