canvas 操作像素 反相

代码实例:

<!DOCTYPE html>
<html>
	<head>
		<style>
		canvas{
		background:#eee;
		}
		</style>
		<title>实例</title>
		<meta charset="utf-8">
		<link rel="stylesheet" href="">
		<script>
			window.onload=function  () {
                var canvas = document.getElementById("canvas");
                var ctx = canvas.getContext("2d");
                //绘制图片
                var img=document.getElementById("img");
                ctx.drawImage(img,0,0,200,200);

                var imgData=ctx.getImageData(0,0,200,200);
                ctx.putImageData(draw(imgData),200,200);
               //方法:反色
               function draw(imgData){
                   for (var i=0;i<imgData.width*imgData.height;i++) {
                       imgData.data[i*4+0]=255-imgData.data[i*4+0];
                       imgData.data[i*4+1]=255-imgData.data[i*4+1];
                       imgData.data[i*4+2]=255-imgData.data[i*4+2];
                       imgData.data[i*4+3]=imgData.data[i*4+3];
                   }
                   return imgData;
               }

            }
		</script>x
	</head>
	<body>
		<canvas id="canvas" width=500 height=500>
		</canvas>
	    <img src="不二2.jpg" id="img" hidden>
	</body>
</html>

  图片:

效果:

2017-09-12  11:12:31

时间: 2024-10-31 19:54:23

canvas 操作像素 反相的相关文章

canvas 操作像素 窗帘效果

代码实例: <!DOCTYPE html> <html> <head> <style> canvas{ background:#eee; } </style> <title>noTitle</title> <meta charset="utf-8"> <script> window.onload=function () { var canvas=document.getEleme

学习Opencv 2.4.9(二) ---操作像素

作者:咕唧咕唧liukun321 来自:http://blog.csdn.net/liukun321 本质上说一张图像就是由数值组成的矩阵.Opencv 2.x由 cv::Mat 这个数据结构来表示一张图像.矩阵的每一个元素代表了一个像素.对于彩色图像而言矩阵的元素是一个三元数.对图像有了这个新的认识,下面可以试着借助opencv处理图像了. 先来看一下今天要处理的图像: 今天的主题是存取像素,首先来看一下如何存取像素值.其实对于像素值的操作都可以由cv::Mat类中成员直接或间接实现,cv::

canvas操作图片,进行面板画图,旋转等

HTML5 <canvas> 标签用于绘制图像(通过脚本,通常是 JavaScript). 不过,<canvas> 元素本身并没有绘制能力(它仅仅是图形的容器) - 您必须使用脚本来完成实际的绘图任务. getContext() 方法可返回一个对象,该对象提供了用于在画布上绘图的方法和属性. 本手册提供完整的 getContext("2d") 对象属性和方法,可用于在画布上绘制文本.线条.矩形.圆形等等. 浏览器支持 Internet Explorer 9.Fi

操作像素

图像的每一个像素用矩阵来表示,opencv用cv::Mat结构来操作图像. 用迭代器扫描图像 cv::MatIterator_<cv::Vec3b>it; for (;it!=itend;++it) { (*it)[0]=(*it)[0]div*div+div/2; (*it)[1]=(*it)[1]div*div+div/2; (*it)[2]=(*it)[2]div*div+div/2;//处理每个像素 } http://www.cnblogs.com/tornadomeet/archiv

【OpenCV学习笔记】一.操作像素

近来给自己开个新坑,打算学习下OpenCV这一计算机视觉库. 参考资料:<OpenCV 2 计算机视觉 编程手册> [以下内容默认版本OpenCV 2.3.1] 最简单的操作莫过于对于一张图片上的像素的遍历了,然而,遍历的方式有很多种,如何取舍很是关键. 简单介绍几种常见的方式: 1.指针遍历: int row = image.rows; int col = image.cols * image.channels(); for(int i = 0; i < row; i++) { uch

JS使用canvas操作、压缩图片

1.使用input标签添加图片文件. <input type="file" name="upload_photo" id="upload_photo" accept="image/jpg,image/jpeg,image/png" value='upload now'>//使用accept限定文件类型 2.监听input的change事件,获取文件内容 $('#upload_photo').on('change',

Canvas 彩色像素滚动条动画 案例分析

最近在学习canvas学习过程中记录下我个人对canvas用法的理解与分析,之前没有用canvas做案例的时候 就只知道canvas有一些属性,但是用到的时候才知道自己知道的canvas是那么少.下面我就分析一下今天我研究一天的canvas案例吧.多有不足之处 请看到的同学批评指正.大概就是类似图片样式滚动显示效果. 1.HTML代码部分 写进<canvas></canvas>标签 2.用javascript代码控制canvas画布,下面是代码部分 代码的解析我就直接在代码展示区域

Android学习笔记进阶14之像素操作

在我们玩的游戏中我们会经常见到一些图像的特效,比如半透明等效果.要实现这种半透明效果其实并不难,需要我们懂得图像像素的操作. 不要怕,其实在Android中Bitmap为我们提供了操作像素的基本方法. 我们可以通过getPixels()方法获得该图像的像素并放到一个数组中去,我们操作这个数组就可以了.最后通过setPixels()方法设置这个数组到Bitmap中. 在Android中,每一个图像像素通过一个4字节整数来展现:最高位字节用作Alpha通道,即用来实现透明与不透明控制,·255代表完

Opencv中图像的遍历与像素操作

Opencv中图像的遍历与像素操作 OpenCV中表示图像的数据结构是cv::Mat,Mat对象本质上是一个由数值组成的矩阵.矩阵的每一个元素代表一个像素,对于灰度图像,像素是由8位无符号数来表示(0代表黑,255代表白):对于彩色图像,每个像素是一个三元向量,即由三个8位无符号数来表示三个颜色通道(Opencv中顺次为蓝.绿.红). 我们先来介绍下cv::Mat类的获取像素的成员函数at(),其函数原型如下: template<typename _Tp> _Tp& at(int i0