html2canvas把div保存高清图的方法代码


本文摘自PHP中文网,作者小云云,侵删。

本文主要和大家介绍了html2canvas把p保存图片高清图的方法示例的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。希望能帮助到大家。

http://www.bootcdn.cn/(可以搜索html2canvans)

1.选择html2canvas版本(这个版本可以放大倍数保证图片清晰)

默认生成的 canvas 图片在 retina 设备上显示很模糊,处理成 2 倍图能解决这个问题:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

var w = $("#code").width();

var h = $("#code").height();

 

//要将 canvas 的宽高设置成容器宽高的 2 倍

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

canvas.width = w * 2;

canvas.height = h * 2;

canvas.style.width = w + "px";

canvas.style.height = h + "px";

var context = canvas.getContext("2d");

//然后将画布缩放,将图像放大两倍画到画布上

context.scale(2,2);

 

html2canvas(document.querySelector("#code"), {

    canvas: canvas,

    onrendered: function(canvas) {

        ...

    }

});

下载方法:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

.on('click','.download',function(){

                $('#mycanvas').remove();

                var _height=$('.skinReport').height();

                //滚到顶部

                $('html, body').animate({scrollTop:0});

 

                if(confirm('是否下载肌肤检测报告?'))

                {

 

                    setTimeout(function(){

                        var canvas = document.createElement("canvas"),

                            w=$('#skinReport').width(),

                            h=$('#skinReport').height();

                        canvas.width = w * 2;

                        canvas.height = h * 2;

                        canvas.style.width = w + "px";

                        canvas.style.height = h + "px";

                        var context = canvas.getContext("2d");

//然后将画布缩放,将图像放大两倍画到画布上

                        context.scale(2,2);

                        html2canvas(document.getElementById('skinReport'), {

                            allowTaint: false,

                            taintTest: true,

                            canvas: canvas,

                            onrendered: function(canvas) {

                                canvas.id = "mycanvas";

                                canvas.style.display = 'none';

                                document.body.appendChild(canvas);

                                //生成base64图片数据

 

                                imgData = canvas.toDataURL(type);

                                //var newImg = document.createElement("img");

                                //newImg.src =  dataUrl;

                                //document.body.appendChild(newImg);

                                //console.log(imgData);

 

                                var _fixType = function(type) {

                                    type = type.toLowerCase().replace(/jpg/i, 'jpeg');

                                    var r = type.match(/png|jpeg|bmp|gif/)[0];

                                    return 'image/' + r;

                                };

                                // 加工image data,替换mime type

                                imgData = imgData.replace(_fixType(type),'image/octet-stream');

                                /**

                                 * 在本地进行文件保存

                                 * @param  {String} data     要保存到本地的图片数据

                                 * @param  {String} filename 文件名

                                 */

                                var saveFile = function(data, filename){

                                    var save_link = document.createElementNS('http://www.w3.org/1999/xhtml', 'a');

                                    save_link.href = data;

                                    save_link.download = filename;

 

                                    var event = document.createEvent('MouseEvents');

                                    event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);

                                    save_link.dispatchEvent(event);

                                };

 

                                // 下载后的问题名

                                var filename = aname+'肌肤检测报告' + (new Date()).getTime() + '.' + type;

                                // download

                                saveFile(imgData,filename);

                            },

                            width:1512,

                            height:15000

                        })

                    },2500)

                }

                else

                {

                    return;

                }

 

            })

相关推荐:

微信小程序怎么开发之微信小程序开发高清图文教程

html2canvas 如何生成高清图片

php创建不失真高清图片实现代码_PHP教程

以上就是html2canvas把div保存高清图的方法代码的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

h5有哪些清空画布方法

javascript中方法和函数是什么

javascript的方法是函数吗

检测javascript里最有效率的功能特征的方法解析

dreamweaver怎么快速对齐代码? dw对齐代码的设置方法_dreamweaver教程_网页制作

html5使用html2canvas实现浏览器截图

html中引入外部页面的方法

用html5绘制折线图的实例代码

html 基于 canvas 实现截图的介绍

javascript中map方法怎么用

更多相关阅读请进入《html2canvas》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...