1. 通过canvas自带的画布方法进行翻转

var img = new image(); //这个就是 img标签的dom对象

img.src = './sy.png';

img.onload = function () {

//图片加载完成后,执行此方法

ctx.drawimage(img, posx, posy, 210, 80);

};

play.addeventlistener('click', function () {

ctx.clearrect(0, 0, canvas.width, canvas.height);//清除画布

//位移来做镜像翻转

ctx.translate(210+ posx * 2, 0);

ctx.scale(-1, 1); //左右镜像翻转

//ctx.translate(0, 160 + posy * 2);

//ctx.scale(1, -1); //上下镜像翻转

ctx.drawimage(img, 0, 0, 210, 80);

});

2.像素点的镜像翻转方法

//竖向像素反转

function imagedatavrevert(sourcedata, newdata) {

for (var i = 0, h = sourcedata.height; i < h; i++) {

for (var j = 0, w = sourcedata.width; j < w; j++) {

newdata.data[i * w * 4 + j * 4 + 0] =

sourcedata.data[(h - i) * w * 4 + j * 4 + 0];

newdata.data[i * w * 4 + j * 4 + 1] =

sourcedata.data[(h - i) * w * 4 + j * 4 + 1];

newdata.data[i * w * 4 + j * 4 + 2] =

sourcedata.data[(h - i) * w * 4 + j * 4 + 2];

newdata.data[i * w * 4 + j * 4 + 3] =

sourcedata.data[(h - i) * w * 4 + j * 4 + 3];

}

}

return newdata;

}

//横向像素反转

function imagedatahrevert(sourcedata, newdata) {

for (var i = 0, h = sourcedata.height; i < h; i++) {

for (j = 0, w = sourcedata.width; j < w; j++) {

newdata.data[i * w * 4 + j * 4 + 0] =

sourcedata.data[i * w * 4 + (w - j) * 4 + 0];

newdata.data[i * w * 4 + j * 4 + 1] =

sourcedata.data[i * w * 4 + (w - j) * 4 + 1];

newdata.data[i * w * 4 + j * 4 + 2] =

sourcedata.data[i * w * 4 + (w - j) * 4 + 2];

newdata.data[i * w * 4 + j * 4 + 3] =

sourcedata.data[i * w * 4 + (w - j) * 4 + 3];

}

}

return newdata;

}

``

var img = new image(); //这个就是 img标签的dom对象

img.src = './sy.png';

img.onload = function () {

//图片加载完成后,执行此方法

ctx.drawimage(img, 0, 0, 210, 80);

};

//像素点操作

var imgdata = ctx.getimagedata(0, 0, 210, 80);

var newimgdata = ctx.getimagedata(0, 0, 210, 80);

// var newimgdata = ctx.getimagedata(0, 0, w, h);

ctx.putimagedata(imagedatavrevert(newimgdata, imgdata), 0, 0); //上下翻转

// ctx.putimagedata(imagedatahrevert(newimgdata, imgdata), 0, 0);//左右翻转~~~~

到此这篇关于canvas实现图片镜像翻转的2种方式的文章就介绍到这了,更多相关canvas图片镜像翻转内容请搜索萬仟网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持萬仟网!

HTML两张图片翻转,canvas实现图片镜像翻转的2种方式相关推荐

  1. 前端实现图片快速反转替换_canvas实现图片镜像翻转的2种方式

    这篇文章我们来讲一下在网站建设中,canvas实现图片镜像翻转的2种方式.本文对大家进行网站开发设计工作或者学习都有一定帮助,下面让我们进入正文. 1. 通过canvas自带的画布方法进行翻转 var ...

  2. 前端实现图片快速反转替换_在canvas上实现元素图片镜像翻转动画效果的方法

    一.Canvas图片水平镜像翻转效果预览 demo页面中点击图片动画效果可见. 二.Canvas上实现图片镜像翻转的实现 CSS中要想实现元素的翻转效果,比较简单,例如我们希望某一张图片水平镜像翻转, ...

  3. flash图片如何镜像翻转_在canvas上实现元素图片镜像翻转动画效果的方法

    这篇文章主要介绍了在canvas上实现元素图片镜像翻转动画效果的方法的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧! 一.Canvas图片水平镜像翻转效果预览 ...

  4. 前端实现图片快速反转替换_HTML5开发之canvas实现元素图片镜像翻转动画效果的方法...

    一.Canvas图片水平镜像翻转效果预览 您可以狠狠的点击这里:canvas图片水平镜像翻转动画demo demo页面中点击图片动画效果可见. 二.Canvas上实现图片镜像翻转的实现 CSS中要想实 ...

  5. python如何让图片镜像翻转_98后常春藤学霸林之秋,一作拿下CVPR最佳论文提名,首次挑战图片翻转不变性假设...

    今年CVPR 最大的亮点之一,当属"后浪"们在学术研究上的出色表现. 在一众获奖论文作者中,年龄最小的一位一作获奖者甚至还在本科阶段.他就是来自康奈尔大学的"98后&qu ...

  6. java实现图片镜像翻转

    实现图片旋转 有些微信图片以及iphone拍摄的图片是左右翻转的,需要镜像旋转成常规图片 /*** @author luowx on 2018/12/20 0020.*/ public class I ...

  7. vue获取上传图片的名字和路径_使用Vue实现图片上传的三种方式

    项目中需要上传图片可谓是经常遇到的需求,本文将介绍 3 种不同的图片上传方式,在这总结分享一下,有什么建议或者意见,请大家踊跃提出来. 没有业务场景的功能都是耍流氓,那么我们先来模拟一个需要实现的业务 ...

  8. 前端实现图片快速反转替换_canvas实现图片镜像翻转 (2种方式)

    canvas实现图片的镜像翻转 1. 通过canvas自带的画布方法进行翻转var img = new Image(); //这个就是 img标签的dom对象 img.src = './sy.png' ...

  9. php图片镜像翻转,利用css动画属性rotate来实现镜像翻转

    要实现镜像翻转,有两种实现方法: 方法一:利用css动画属性rotate旋转来实现 具体代码:.mirrorRotateLevel { transform: rotateY(180deg); /* 水 ...

  10. python计算两张图片相似度,python 图片相似度匹配

    如何使用python来判断图片相似度 . fromPILimportImageimportos#importhashlibdefgetGray(image_file):tmpls=[]forhinra ...

最新文章

  1. iOS 项目中用到的一些开源库和第三方组件
  2. echarts中的世界地图
  3. Android 9 的非 SDK 接口限制 | 中文教学视频
  4. 主流Java学习路线
  5. (C#)为 TextBox 控件增加一个限制最大字节数的属性
  6. 魔兽世界转服务器显示完成,魔兽世界怀旧服:TAQ变简单了,为什么还是出现了AFK大潮?...
  7. html无框架,HTML框架技术详例
  8. 理解group by
  9. 证券期货业信息系统安全等级保护基本要求》送审
  10. mysql 5.5.37安装_MySQL5.5.37编译安装详解
  11. Python与模块--01sys
  12. php程序读取firework生成的png图片数据
  13. 福建省12.5米DEM数字高程数据
  14. 计算机算法专业英语,计算机算法相关术语的英语词汇
  15. 可重入锁synchronized 和 ReentrantLock
  16. 【Java 代码实例 14】BeanUtils用法详解,附源码分析
  17. 看图赏鉴——阿里云张北数据中心
  18. 【8.8gzoj综合】贪|污排名【搜索二叉树】
  19. 数据透视表(合并同类型数据求和)
  20. TimescaleDB部署

热门文章

  1. 非计算机专业,如何学习计算机视觉
  2. AI“独角兽”排队上市,但属于AI公司的胜利还没有到
  3. epub文件一揽子解决方案
  4. android 拨打电话 发送短信 权限,Android中发送短信和拨打电话
  5. 实验题集4:函数R6-1 面积计算器(函数重载) (10 分)
  6. 车载系统模块资料整理
  7. matlab绘制图形中,常用函数调用(num2str,disp,gcf,hold on,plot,axis,subplot,line,stairs,grid,set,gca)
  8. 中英文电子书免费下载网站大全
  9. EV充电插头相关知识学习了解
  10. 快速解决Springboot打包完项目jar包后遇到的问题(1):“Error java: 程序包xxx不存在。