Canvas中图片镜像翻转怎么操作,有多少方法
Admin 2022-07-01 群英技术资讯 1582 次浏览
关于“Canvas中图片镜像翻转怎么操作,有多少方法”的知识有一些人不是很理解,对此小编给大家总结了相关内容,具有一定的参考借鉴价值,而且易于学习与理解,希望能对大家有所帮助,有这个方面学习需要的朋友就继续往下看吧。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);//左右翻转~~~~
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
css3动画的属性总的来说只有transform(变形),transition(过渡),和animation(动画)这三种。transition:1s(过渡的动画效果):从一个人具体的值到另一个过渡的值transform:rotate(
本文给大家分享html5调用摄像头实例代码,代码简单易懂,对前端html5的学习有很大帮助,如果对html5调用摄像头相关知识感兴趣的朋友一起看看吧
这篇文章给大家分享的是关于响应式布局的内容,本文对响应式布局有详细的介绍,另外还介绍了一些响应式布局容易忽略但又很重要的知识点,对大家理解响应式布局有一定的帮助,感兴趣的朋友接下来一起跟随小编看看吧。
Css3概述从2010年开始,HTML5与CSS3就一直是互联网技术中最受关注的两个话题。从前端技术的角度可以把互联网的发展分为三个阶段:第一阶段是web1.0以内容为主的网络,前端主流技术是HTML和CSS,第二阶段是web2.0的Ajax应用,热门技术是javascrip/DOM/异步数据请求。第三阶段是即将迎来的HTML5+CSS3时代,这两者相辅相成,使互联网又进入一个崭新的时代。什么
这篇文章主要介绍了修复一个因为scrollbar占据空间导致的bug问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008