代码实例:

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>图片反色</title>
<style type="text/css">
body{ background:black;}
#c1{ background:white;}
</style>
<script type="text/javascript">
window.onload=function()
{
var oC=document.getElementById('c1');
var oGC=oC.getContext('2d');
var oImg=new Image();
oImg.onload=function()//图片预加载后才可以操作
{
draw(this);
}
oImg.src='1.PNG';
function draw(obj)
{
oC.width=obj.width;//将画布设为图片宽的一倍
oC.height=obj.height*2;//将画布设为图片高的两倍,以用来倒影 oGC.drawImage(obj,0,0);//将图片画在画布上
var newImg=oGC.getImageData(0,0,obj.width,obj.height);//得到图片数据
var ONewImg = oGC.createImageData(obj.width,obj.height);
//重要。要创建新的图片数据再将原来的反色后色数据赋值,
// 如果直接在原数据上操作数据会导致数据覆盖而得不到结果
for(var i=0;i<newImg.height;i++)
{
for(var j=0;j<newImg.width;j++)
{
var color = getXY(newImg,j,i);//得到原来图片数据,一个像素有四个值,分别代表rgba
var result = [];
result[0] = 255 - color[0];
result[1] = 255 - color[1];
result[2] = 255 - color[2];
result[3] = 255*i/newImg.height;
setXY(ONewImg,j,newImg.height-i,result);//设置到新的数据里面
}
}
oGC.putImageData(ONewImg,0,obj.height);//将图片数据设置到画布中 }
//获取rgba
function getXY(obj,x,y)
{
var w=obj.width;
var h=obj.height;
var data=obj.data;
var color=[]; color.push(data[(y*w+x)*4]);
color.push(data[(y*w+x)*4+1]);
color.push(data[(y*w+x)*4+2]);
color.push(data[(y*w+x)*4+3]); return color;
}
//设置rgba
function setXY(obj,x,y,color)
{
var w=obj.width;
var h=obj.height;
var data=obj.data;
data[(y*w+x)*4]=color[0];
data[(y*w+x)*4+1]=color[1];
data[(y*w+x)*4+2]=color[2];
data[(y*w+x)*4+3]=color[3];
}
}
</script>
</head> <body>
<canvas id="c1" width="500" height="500"></canvas>
</body>
</html>

  图片:

效果:

2017-09-09   22:40:39

canvas 图片反色的更多相关文章

  1. html5 canvas图片反色

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  2. php对图片反色处理

    今天有个需求用php对图片进行反色,和转灰,之前不知道可不可行,后来看到了imagefilter()函数,用来转灰绰绰有余,好强大: imagefilter($im, IMG_FILTER_GRAYS ...

  3. C# 图片反色处理 图片夜间模式

    项目属性-->生成-->允许不安全代码勾上. 代码: /// <summary> /// 反色处理 /// </summary> private Bitmap In ...

  4. Mac 把图片反色

    黑色图变白色 1:用预览打开 2:打开"调整颜色" 3:把"自动色阶"两边的按钮, 拖动换位置,就可以看到效果了.

  5. canvas简单处理图片(反色处理)

    用canvas可以简单地处理图像,比如切割 灰色处理等,今天记下的是图像的反色处理. <!DOCTYPE html> <html> <head> <meta ...

  6. [js高手之路] html5 canvas系列教程 - 像素操作(反色,黑白,亮度,复古,蒙版,透明)

    接着上文[js高手之路] html5 canvas系列教程 - 状态详解(save与restore),相信大家都应该玩过美颜功能,而我们今天要讲的就是canvas强大的像素处理能力,通过像素处理,实现 ...

  7. html、canvas、视频灰度、反色

    效果图: 代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  8. 批量生成反色图片,用PHOTOSHOP批处理功能。

    http://zhidao.baidu.com/link?url=Iz46PDPnEITummTEwo2GtUrK6AeAjlidJ7HtCPJ6NYZJbbllRwNg2iBAcNwF2TYjccP ...

  9. 小技巧!CSS 提取图片主题色功能探索

    本文将介绍一种利用 CSS 获取图片主题色的小技巧.一起看看~ 背景 起因是微信技术群里有个同学发问,有什么方法能够获取图片的主色呢?有一张图片,获取他的主色调: 利用获取到的这个颜色值,来实现类似这 ...

随机推荐

  1. php array_fill()函数 语法

    php array_fill()函数 语法 作用:用键值填充数组.大理石平台价格 语法:array_fill(index,number,value) 参数: 参数 描述 index 必需.被返回数组的 ...

  2. 如何从word中复制内容到网站后台编辑器中

    word图片转存,是指UEditor为了解决用户从word中复制了一篇图文混排的文章粘贴到编辑器之后,word文章中的图片数据无法显示在编辑器中,也无法提交到服务器上的问题而开发的一个操作简便的图片转 ...

  3. CSS/CSS3常用的样式

    强制文本显示 让一段文字在固定宽度在一行显示,最后一个字符为省略标记(...),css样式如下 单行显示语法:white-space:nowrap; div{ white-space:nowrap; ...

  4. 数据导入导出mysql版本不同导致的问题

    5.6.16-log导出.5.5.47-log导入 `addtime` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '记录生产时间', 需要修改为: `add ...

  5. linux centos添加yum镜像

    下载配置文件,加入/etc/yum.repos.d/阿里镜像:http://mirrors.aliyun.com/repo/Centos-7.repo网易镜像:http://mirrors.163.c ...

  6. 关于CSS你应该知道的基础知识 - 样式应用篇

    上一篇简单总结了一下选择器,如果一个元素被多个选择器选中,元素的样式就会以级联方式被应用到.要搞清最终那个样式被应用到元素上了,首先要明白引用CSS代码的几种方式. CSS代码引用方式 如何应用CSS ...

  7. gradle自动化打包apk

    前堤是要在安卓项目中配置好gradle.build脚本 ## !/bin/sh ## 项目名 ##使配置文件生效,否则会报gradle:命令找不到 source /etc/profile TARGET ...

  8. CentOS 7命令行安装GNOME、KDE图形界面(成功安装验证)

    来源:cnblogs.com/Amedeo  作者:Amedeo 正文 CentOS 7 默认是没有图形化界面的,但我们很多人在习惯了 Windows 的图形化界面之后,总是希望有一个图形化界面从而方 ...

  9. 【PP系列】SAP 取消报工后修改日期

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[PP系列]SAP 取消报工后修改日期   前言 ...

  10. Spring MVC浅析

    讲到MVC,想必大家都很熟悉,就是将数据模型.视图.控制器进行分离,做到分工明确,在Spring的帮助下,Spring MVC 更是做到了充分的解耦,因为大部分的资源都由Spring进行管理,为Spr ...