本文主要为大家详细介绍了JavaScript html5 canvas实现图片上画超链接,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能帮助到大家。

1. html

2. javascript

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();

}

相关推荐:

html5在图片中加链接,JavaScript、html5、canvas实现图片上画超链接相关推荐

  1. JS/Canvas在图片上画点画线不规则图形,并获取图片上的坐标

    直接先上效果 操作说明:点 [添加区域] 鼠标进行画-- 右键结束画 点[清楚画图]画布初始化,再点[添加区域]画,反复反复,,,, 代码 <!DOCTYPE html> <html ...

  2. 使用canvas在图片上画圆圈,并可点击圆圈在圆圈下方画垂直线(适配移动端)

    一.UI 二.实现 <div class="carBrightSpot"><!-- 轮播图 --><div class="block-swi ...

  3. html5时间画布走动,javascript+HTML5 canvas绘制时钟功能示例

    本文实例讲述了javascript+HTML5 canvas绘制时钟功能.分享给大家供大家参考,具体如下: 效果如下: 代码: www.jb51.net canvas绘制时钟 div{text-ali ...

  4. JavaScript 使用canvas压缩图片

    压缩思路 JS 的图片压缩,一般是需要用到 Canvas 的绘图能力,通过调整图片的分辨率或者绘图质量来达到图片压缩的效果. 实现过程 (1)获取上传 Input 中的图片对象 File: (2)将图 ...

  5. java canvas添加图片上传_HTML5 canvas画图及图片上传服务器

    上一个教程中我们实现了使用html5 canvas来制作涂鸦画板的效果,在这个教程中,我们将讲解如何将画好的图片上传到服务器上. 最后的效果如下图,当点击"开始画图"按钮,将在ca ...

  6. canvas在图片上绘制标记,可拖拽、缩放,基于ZRender

    如下图所示,在图片上做标记,如圆形.矩形等. 该demo实现画布在页面布局中缩放后居中显示,可拖拽.缩放.做标记说明. 项目下载地址:https://gitlab.com/zhangcw66/draw ...

  7. canvas在图片上绘制图形

    说明 在vue项目中,后台返回图片的url和矩形的顶点坐标(左上和右下),需要在图片上绘制矩形框,并在前端进行展示(一张张的播放图片). 其中返回的数据是多张图片的集合,前端也需要整合一个绘制后的图片 ...

  8. html5+datatime加减,javascript实现日期按月份加减

    项目中需要用到,自己写了一个.javascript日期按月加减 function dateToDate(date) { var sDate = new Date(); if (typeof date ...

  9. html5 页面加载缓慢,html5体验优化页面加载的14条建议

    html5体验优化页面加载的14条建议 1. fake 页 - 首屏加速 目标:首屏 3s 以内 因为 71% 的用户期望移动页面跟 pc 页面一样快 (3s) ,74% 的用户能容忍的响应时间为 5 ...

最新文章

  1. 201621123028《Java程序设计》第一周学习总结
  2. Web服务(Apache、Nginx、Tomcat、Jetty)与应用(LAMP、CMS-WordPressGhost、Jenkins、Gitlab)
  3. php 数组降维,php 数组去重的方法参考(一维数组去重、二维数组去重)
  4. javax.servlet.http.HttpServletRequest接口(HTTP版本)
  5. ubuntu18安装vnpyv1.9.2之二
  6. 无锡php公司,start.php
  7. The Things Network LoRaWAN Stack V3 学习笔记 2.6 新增一个 CN470 子频段
  8. CZMDUI,简约而不简单的typecho模板
  9. 论文解读:MOEA/D with Adaptive Weight Adjustment
  10. Java-数据结构-TreeMap
  11. .Net Core开发学习(一) ——Startup 类
  12. 图像可视化——matplotlib绘图入门基础
  13. 司普沃浅谈豆角种植技术与管理方案
  14. 新浪微博、腾讯微博、QQ空间、人人网、豆瓣 一键分享API代码参数
  15. HTML中常见的选择器 的优先级
  16. 数据库中超码、候选码、主码的理解
  17. 32位程序在64位系统上运行
  18. ffmpeg利用滤镜合并四个视频,左一右三
  19. 【源码】基于lévy飞行的随机蛙跳算法及其在连续优化问题中的应用
  20. pjsip java_pjsip_java

热门文章

  1. Android动画学习
  2. ​​【​观察】解读京东3C品牌升级背后 零售基础设施输出赋能更多行业
  3. 计算机游戏制作课程标准,1.(游戏界面(UI)设计)课程标准-20210528001623.pdf-原创力文档...
  4. jQuery MiniUI 开发教程 导航控件 ContextMenu:右键菜单(四)
  5. 本想“靠脸吃饭”,却陷入“美容贷”套路!
  6. python_ 标识符
  7. BUUCTF 刷题 铁人三项(第五赛区)_2018_rop
  8. webx URIBrokerService 总结
  9. 谈话的力量笔记~~~
  10. 算法导论——(1)加权中位数的实现