首页 web前端 js教程 JavaScript+html5 canvas实现图片上画超链接的示例代码

JavaScript+html5 canvas实现图片上画超链接的示例代码

May 12, 2018 am 10:23 AM
canvas js

1. html

1

2

<canvas id="canvasFile" style="margin-top:15px;" width="500" height="400"></canvas>

<input type="button" id="btnRedo" value="Re-Draw" class="btn btn-warning"/>

登录后复制

2. javascript

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

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

var photoW = 400;

    var photoH = 300;

    var photo;

    // logic load image into canvas

    // ...

    // e.g. 

    // photo = new Image();

    // photo.onload = function() {

    // draw photo into canvas when ready

    // ctx.drawImage(photo, 0, 0, photoW, photoH);

    // };

    // load photo into canvas

    // photo.src = picURL;

    

      

 // canvas highlight

    var canvas = document.getElementById('canvasFile'),

      ctx = canvas.getContext('2d'),

      img = new Image;

    var btnDone = document.getElementById('btnDone');

    var btnRedo = document.getElementById('btnRedo');

  

  

    ctx.strokeStyle = '#FF0000';

  

    function DrawDot(x, y) {

      var centerX = x;

      var centerY = y;

      var radius = 2;

  

  

      ctx.beginPath();

      ctx.arc(centerX, centerY, radius, 0, 2 * Math.PI, false);

      ctx.fillStyle = 'red';

      ctx.fill();

      ctx.lineWidth = 2;

      ctx.strokeStyle = '#FF0000';

      ctx.stroke();

    }

  

  

    function startDrawing() {

      ctx.drawImage(img, 0, 0, photoW, photoH);

      canvas.onmousemove = mousemoving;

      canvas.onmousedown = mousedownhandle;

      canvas.onmouseup = mouseuphandle;

      // ## mobile events

      //touchstart – to toggle drawing mode “on”

      //touchend – to toggle drawing mode “off”

      //touchmove – to track finger position, used in drawing

      canvas.addEventListener('touchmove', touchmove, false);

      canvas.addEventListener('touchend', mouseuphandle, false);

  

  

      btnRedo.onclick = function (e) {

        ctx.clearRect(0, 0, ctx.width, ctx.height);

        ctx.drawImage(photo, 0, 0, photoW, photoH);

        savedrawing();

      }

    }

    function savedrawing(e) {

      var image = document.getElementById('canvasFile').toDataURL("image/jpeg");

      image = image.replace('data:image/jpeg;base64,', '');

      $("#imgNric1").val(image);

    };

  

 

    function mousemoving(e) {

      if (drawing) {

        mousedownhandle(e);

      }

    }

  

  

    var drawing = false;

  

  

    function mousedownhandle(e) {

      drawing = true;

      var r = canvas.getBoundingClientRect(),

        x = e.clientX - r.left,

        y = e.clientY - r.top;

  

  

      DrawDot(x, y);

    

  

    function mouseuphandle(e) {

      savedrawing();

      e.preventDefault();

      drawing = false;

        

    }

   

  

    //// mobile touch events

    function touchmove(e) {

      if (e.clientX > 800) {

        mousedownhandle(e);

        return;

      }

  

      var r = canvas.getBoundingClientRect(),

        //event.changedTouches[0].pageX + ":" + event.changedTouches[0].pageY;

        x = e.changedTouches[0].pageX - r.left,

        y = e.changedTouches[0].pageY - r.top;

 

      DrawDot(x, y);

      e.preventDefault();

    }

登录后复制

以上是JavaScript+html5 canvas实现图片上画超链接的示例代码的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章

两个点博物馆:邦格荒地地点指南
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章

两个点博物馆:邦格荒地地点指南
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章标签

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

推荐:优秀JS开源人脸检测识别项目 推荐:优秀JS开源人脸检测识别项目 Apr 03, 2024 am 11:55 AM

推荐:优秀JS开源人脸检测识别项目

股票分析必备工具:学习PHP和JS绘制蜡烛图的步骤 股票分析必备工具:学习PHP和JS绘制蜡烛图的步骤 Dec 17, 2023 pm 06:55 PM

股票分析必备工具:学习PHP和JS绘制蜡烛图的步骤

PHP与JS开发技巧:掌握绘制股票蜡烛图的方法 PHP与JS开发技巧:掌握绘制股票蜡烛图的方法 Dec 18, 2023 pm 03:39 PM

PHP与JS开发技巧:掌握绘制股票蜡烛图的方法

如何使用PHP和JS创建股票蜡烛图 如何使用PHP和JS创建股票蜡烛图 Dec 17, 2023 am 08:08 AM

如何使用PHP和JS创建股票蜡烛图

html2canvas对哪些样式无效 html2canvas对哪些样式无效 Nov 24, 2023 pm 03:25 PM

html2canvas对哪些样式无效

中国教育界中Canvas的发展态势和未来前景 中国教育界中Canvas的发展态势和未来前景 Jan 17, 2024 am 10:22 AM

中国教育界中Canvas的发展态势和未来前景

js和vue的关系 js和vue的关系 Mar 11, 2024 pm 05:21 PM

js和vue的关系

如何使用JS和百度地图实现地图地理编码功能 如何使用JS和百度地图实现地图地理编码功能 Nov 21, 2023 pm 06:30 PM

如何使用JS和百度地图实现地图地理编码功能

See all articles