htmltoImage

功能描述

页面内容生成图片,用例见 htmltoImage.html

demo文件请在ApiCloud环境测试,若要在浏览器测试把api部分和页面加载的远程图片注释掉即可。

概述

本模块依赖于于html2Canvas.js,在html2Canvas项目基础上优化了要生成图片的区域,包含本地图片和远程图片无法加载的部分问题。

依赖的模块

./libs/html2Canvas.js ./libs/htmltoImage.js

快速使用

将指定部分内容生成image对象或者base64 htmltoImage.init({params}, callback(res));

params

el

  • 类型:object
  • 默认值:body
  • 描述:要生成图片的区域dom isImageObject
  • 类型:布尔值
  • 默认值:false
  • 描述:要生成图片的区域dom

    callback(res, err)

    res:

  • 类型:JSON对象
  • 内部字段:

    1. {
    2. ret: 1 // int类型,1生成成功
    3. msg: '', // 生成结果信息,成功
    4. base64str: '', // 字符串类型 生成的base64图片字符串
    5. imageObject'' // object类型,生成的图片image对象,可直接显示在页面
    6. }

    err:

  • 类型:JSON对象
  • 内部字段:

    1. {
    2. ret: 0 // int类型,0生成失败
    3. msg: '', // 生成结果信息,失败
    4. }

    base64字符串前缀截取

    要将生成的base64图片保存到手机里,需要截取base64字符串的前缀 htmltoImage.cutprefixBase64(base64Str);

    base64Str

    base64Str

  • 类型:字符串类型
  • 描述:图片的base64字符串

拓展使用

使用 trans 模块将生成的图片保存到系统相册

  1. htmltoImage.init({
  2. 'el': document.getElementById('main'),
  3. 'isImageObject': true,
  4. }, function(res, err){
  5. if(res) {
  6. alert(JSON.stringify(res));
  7. var base64Str1 = htmltoImage.cutprefixBase64(res.base64str);
  8. var trans = api.require('trans');
  9. trans.saveImage({
  10. base64Str: base64Str1,
  11. album: true,
  12. imgName: new Date().getTime() + ".png"
  13. }, function(ret, err) {
  14. if (ret.status) {
  15. alert(JSON.stringify(ret));
  16. } else {
  17. alert(JSON.stringify(err));
  18. }
  19. });
  20. } else {
  21. alert(JSON.stringify(err));
  22. }
  23. })

将生成的图片对象显示到页面

  1. htmltoImage.init({
  2. 'el': document.getElementById('main'),
  3. 'isImageObject': true,
  4. }, function(res, err){
  5. if(res) {
  6. alert(JSON.stringify(res));
  7. document.getElementById("main").append(ret.imageObject);
  8. } else {
  9. alert(JSON.stringify(err));
  10. }
  11. })