如何利用HTML5 canvas旋转图片?(实例演示)

如何利用HTML5 canvas旋转图片?(实例演示)

最近突然想研究一下js旋转图片的功能。对于之前的实现方式,就不先说了。现在HTML5很不错,主要了解一下HTML5中的图片旋转吧。

实例演示: http://www.imqing.com/demo/rotateImg.html

原理:利用canvas对象来旋转。

实现方式:首先创建一个canvas元素,然后把img元素绘入canvas。但是,实际上,这是默认情况,就是图片没旋转时。如果图片要旋转90度的话,就需要先把canvas画布旋转90度后再绘图。

描述如下: 

立即学习“前端免费学习笔记(深入)”;

内部旋转原理是这样的,图片的坐标是从左上角开始计算,向右为x正方向,向下为y正方向,在旋转画布canvas时,实际上是这个坐标在旋转,所以最后绘图方式不一样。

当时我还用了picpick来测量旋转一定角度后起点坐标,才知道原来旋转是这样的。

代码:

            
@@##@@ function rotateImg(pid, direction) { //最小与最大旋转方向,图片旋转4次后回到原方向 var min_step = 0; var max_step = 3; var img = document.getElementById(pid); if (img == null)return; //img的高度和宽度不能在img元素隐藏后获取,否则会出错 var height = img.height; var width = img.width; var step = img.getAttribute('step'); if (step == null) { step = min_step; } if (direction == 'right') { step++; //旋转到原位置,即超过最大值 step > max_step && (step = min_step); } else { step--; step < min_step && (step = max_step); } img.setAttribute('step', step); var canvas = document.getElementById('pic_' + pid); if (canvas == null) { img.style.display = 'none'; canvas = document.createElement('canvas'); canvas.setAttribute('id', 'pic_' + pid); img.parentNode.appendChild(canvas); } //旋转角度以弧度值为参数 var degree = step * 90 * Math.PI / 180; var ctx = canvas.getContext('2d'); switch (step) { case 0: canvas.width = width; canvas.height = height; ctx.drawImage(img, 0, 0); break; case 1: canvas.width = height; canvas.height = width; ctx.rotate(degree); ctx.drawImage(img, 0, -height); break; case 2: canvas.width = width; canvas.height = height; ctx.rotate(degree); ctx.drawImage(img, -width, -height); break; case 3: canvas.width = height; canvas.height = width; ctx.rotate(degree); ctx.drawImage(img, -width, 0); break; } }

解释:canvas.width与height就不用解释了吧,应该。rotate应该也不用吧?关键是drawImage(img, x, y);

其中的x,y是指从哪一点开始画,因为整个坐标系统旋转了,所以,x,y不一样,比如step=1,图片向右旋转了90度,即坐标系旋转了90度,那么起始位置应该是x = 0,   y=  img.height

如何利用HTML5 canvas旋转图片?(实例演示)

以上就是如何利用HTML5 canvas旋转图片?(实例演示)的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1548588.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月21日 20:03:08
下一篇 2025年12月21日 20:03:20

相关推荐

  • 你有认真学习HTML5吗?那么你应该读的书都在这里了

    近年来,互联网的快速发展,Web前端领域的HTML5越来越火热,H5方向的专业人才需求也越来越高。 对于刚接触这项技术的小白来说,对HTML5还不能清晰的认识,想入门又不知道该从何处下手,本文将整理几本关于HTML5的书籍,希望对大家有所帮助。 1、《Head First HTML5 Program…

    2025年12月21日
    000
  • HTML5如何在手机端调用相机?

    input调用设备录像HTML5官方文档解释:capture属性用于调用设备的摄像头或麦克风。当accept=”audio/或video/”时capture只有两种值,一种是user,用于调用面向人脸的摄像头(例如手机前置摄像头),一种是environment,用于调用环境摄像头(例如手机后置摄像头…

    2025年12月21日
    000
  • H5可以导出成视频吗?

    H5可以导出成视频吗? H5不可以导出成视频,用户想要将H5转换为视频格式是可以通过录屏来实现的,用户下载录屏软件,将H5录制下来,H5是指第5代HTML,也指用H5语言制作的一切数字产品。 HTML5 HTML5是构建Web内容的一种语言描述方式。HTML5是互联网的下一代标准,是构建以及呈现互联…

    2025年12月21日
    000
  • 值得一看的html5实现简单老虎机的教程(游戏开发)

    值得一看的html5实现简单老虎机的教程 本游戏使用的是html5的canvas,运行游戏需要浏览器支持html5。 使用开源引擎:lufylegend.js, lufylegend.js引擎包内包含这个demo,请直接下载lufylegend.js引擎,查看引擎包内源码 立即学习“前端免费学习笔记…

    2025年12月21日
    000
  • html5新特性有哪些

    html5新特性有哪些 1.语义化标签 对比之前HTML没有体现结构语义化的标签,如: //表头的声明 HTML5提供语义化标签,如: 等 2.增强型表单 立即学习“前端免费学习笔记(深入)”; 多个新的表单 Input 输入类型,如: color,url,date等 这些新特性提供了更好的输入控制…

    2025年12月21日
    000
  • HTML5之前的HTML版本是什么

    html5之前的html版本是什么 HTML5之前的版本是 HTML 4.01 ,HTML5版本为当前最新的HTML版本。 HTML4.01、HTML5 之间的区别: 声明区别 HTML有多个不同的版本,只有准确的在页面中指定确切的HTML版本,浏览器才能正确无误的显示HTML页面。这就是的用处。 …

    2025年12月21日
    000
  • 什么是 HTML5?

    什么是 html5? HTML5 是最新的 HTML 标准。   (推荐学习:html教程) HTML5 是专门为承载丰富的 web 内容而设计的,并且无需额外插件。 HTML5 拥有新的语义、图形以及多媒体元素。 立即学习“前端免费学习笔记(深入)”; HTML5 提供的新元素和新的 API 简化…

    2025年12月21日
    000
  • HTML5 浏览器支持

    您可以帮助老版本浏览器处理 html5。 HTML5 浏览器支持 所有现代浏览器都支持 HTML5。   (推荐学习:html教程) 此外,所有浏览器,不论新旧,都会自动把未识别元素当做行内元素来处理。 立即学习“前端免费学习笔记(深入)”; 正因如此,您可以帮助老式浏览器处理”未知的“ HTML …

    2025年12月21日
    000
  • HTML5 Canvas

    canvas 元素用于在网页上绘制图形。 什么是 Canvas? HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像。  (推荐学习:html教程) 画布是一个矩形区域,您可以控制其每一像素。 立即学习“前端免费学习笔记(深入)”; canvas 拥有多种绘制路径、矩形、…

    2025年12月21日
    000
  • HTML5 内联 SVG

    html5 支持内联 svg。 什么是SVG?   (推荐学习:html教程) SVG 指可伸缩矢量图形 (Scalable Vector Graphics) SVG 用于定义用于网络的基于矢量的图形 立即学习“前端免费学习笔记(深入)”; SVG 使用 XML 格式定义图形 SVG 图像在放大或改…

    2025年12月21日
    000
  • 如何学习html5

    HTML(Hyper Text Markup Language)即超文本标记语言。HTML5指的是超文本标记语言第五次重大修改。目前,HTML5 中包含一些有趣的新特性,如用于绘画的 canvas 元素、对本地离线存储的更好的支持、用于媒介回放的 video 和 audio 元素等等。那么我们应该如…

    2025年12月21日
    000
  • html代码什么意思?

    超文本标记语言(标准通用标记语言下的一个应用,外语缩写html),是迄今为止网络上应用最为广泛的语言,也是构成网页文档的主要语言。 HTML代码也就是HTML语言编写的文本。HTML文本是由HTML命令组成的描述性文本。 HTML命令可以说明文字、图形、动画、声音、表格、链接等。HTML的结构包括头…

    2025年12月21日
    000
  • HTML中的title是什么意思?

    title 属性规定关于元素的额外信息。这些信息通常会在鼠标移到元素上时显示一段工具提示文本(tooltip text)。 HTML中的title显示的是网页标题标签,可以让浏览者知道当前页面的主要是讲什么的,所以每个网页都应该有一个单独的title。 提示:title 属性常与 form 以及 a…

    2025年12月21日
    000
  • html5动画有什么用?

    html5动画主要服务对象还是给予web的应用,并不会对全部app开发造成威胁,这样有利于不同类型应用使用不同的开发方式,灵活性更强。 利用HTML5开发移动应用的优点主要有以下几点:   1、离线缓存为HTML5开发移动应用提供了基础。HTML5 Web Storage API可以看做是加强版的c…

    2025年12月21日
    000
  • doctype html 什么意思?

    前写html或者jsp页面,从来不注意doctype的声明,也不太明白doctype的作用意义。直到最近碰到了一个非常奇葩的bug:某一个页面在ie7和8,chrome,ff等下正常,但是在ie9下显示有问题。经过一番努力,终于在httpwatch里边找到了答案:doctype未声明。于是我给页面添…

    2025年12月21日
    000
  • html 可以用什么软件进行开发?

    html是超文本标记语言(hyper text markup language),标准通用标记语言下的一个应用,html 不是一种编程语言,而是一种标记语言 (markup language),是网页制作所必备的。 可以用以下几种软件开发: 一、HBuilder hbuilder是DCloud推出的…

    2025年12月21日
    000
  • 学html5能干什么的

    学完html5后我们可以选择去做html5工程师,或者有更强的能力可以选择去做一名资深的web架构师,或者是选择自己创业等。 HTML5是移动互联网前端的主流开发语言,目前还没有一个前端的开发语言能取代HTML5的位置,所以说,无论你是做手机网站还是在手机APP应用,前端的样式都是HTML5开发的。…

    2025年12月21日
    000
  • h5前端开发是什么

    html5前端开发就是一种前端技术集合开发的岗位,它主要包括了html5、CSS3以及JS前端技术;其中h5就是指HTML5,是描述网页的标准语言,html5与前端技术是一种从属的关系,即html5是属于前端开发的一部分。 想要知道H5前端开发是什么,我们得首先了解什么是H5以及什么是前端,以及他们…

    2025年12月21日
    000
  • 学html5后工作做什么

    学html5后工作可以做多种,比如:1、手机页游的3D化;2、动漫,二次元;3、轻应用,WebApp,微站;4、移动视频,在线直播引领视频升级;5、影视互动,HTML5推动泛娱乐产业发展等等。 学完HTML5能做什么?是很多同学的疑惑。今天我们来看看HTML5的发展方向: 推荐课程:HTML5教程。…

    2025年12月21日
    000
  • html5布局之路怎么样

    《html5布局之路》是清华大学出版社,于2017年6月出版的,涉及html、css、html5、css3的编程语言书籍,作者:刘国利。 推荐课程:HTML5教程。 本书以“非字典”的讲解方式,让HTML5、WEB前端的学习变得更加简单高效。 独有特点(与其他同类型书籍相比) 立即学习“前端免费学习…

    2025年12月21日
    000

发表回复

登录后才能评论
关注微信