canvas处理图片
canvas绘制图片的三种方法:
drawImage(image, x, y)
drawImage(image, x, y, width, height)
drawImage(image, sourceX, sourceY, sourceWidth, sourceHeight,destX, destY, destWidth, destHeight)
参数:
image:所要绘制的图像。这必须是表示 <img> 标记或者屏幕外图像的 Image 对象,或者是 Canvas 元素
x,y:要绘制的图像的左上角的位置。
width,height:图像所应该绘制的尺寸。指定这些参数使得图像可以缩放
sourceX,sourceY: 图像将要被绘制的区域的左上角。这些整数参数用图像像素来度量 (图片要裁剪的起始位置)
sourceWidth, sourceHeight:图像所要绘制区域的大小,用图像像素表示 (图片要裁剪的大小)
destX, destY:所要绘制的图像区域的左上角的画布坐标 (图片插入的位置)
destWidth, destHeight:图像区域所要绘制的画布大小 (图片要绘制的大小)
对canvas绘制的图片处理:
1、复制画布上指定的矩形的像素数据
var imageDatas = ctx.getImageData(x, y, width, height);
参数:
x,y:复制的左上角位置的 x、y 坐标。
width,heigth:将要复制的矩形区域的宽度、高度
2、获取指定矩形区域的rgba
var dataArray = imageDatas.data;
3、通过for循环对每个像素点设置新的rgba
如反色:255 减去 r g b 现在的值
灰色处理(r g b等值):可以将现在的 r g b 加起来除以3再分别赋值
透明度:设置dataArray[i + 3]的值即可
4、图像数据放回画布上
ctx.putImageData(imageDatas,x,y,dirtyX,dirtyY,dirtyWidth,dirtyHeight);
参数:
imageDatas:放回画布的 imageDatas对象
x,y:要绘制的图像的左上角的位置
dirtyX,dirtyY(可选):在画布上放置图像的位置
dirtyWidth,dirtyHeight(可选):在画布上绘制图像所使用的宽度、高度。
如下为设置透明度的代码:
var imageDatas = ctx.getImageData(, , , ); //复制画布上指定的矩形的像素数据
var dataArray = imageDatas.data; //获取矩形区域的 rgba,范围均是(0-255)
for (var i = ; i < dataArray.length ; i += ) {
var r = dataArray[i]; //设置新的 rgba
var g = dataArray[i+];
var b = dataArray[i+];
var a = dataArray[i + ]; //此处代表图片的透明度(透明度也是 0-255)
dataArray[i] = r; //赋予矩形区域新的 rgba 值
dataArray[i + ] = g;
dataArray[i + ] = b;
dataArray[i + ] = a * 0.2;
}
ctx.putImageData(imageDatas, , );
canvas处理图片的更多相关文章
- HTML5 canvas处理图片的各种效果,包括放大缩小涂鸦等
http://www.htmleaf.com/ziliaoku/qianduanjiaocheng/201502151385.html jQuery 缩放 旋转 裁剪图片 Image Cropper ...
- Canvas处理头像上传
未分类 最近社区系统需要支持移动端,其中涉及到用户头像上传,头像有大中小三种尺寸,在PC端,社区用Flash来处理头像编辑和生成,但该Flash控件的界面不友好而且移动端对Flash的支持不好,考虑到 ...
- Canvas 基本绘图方法总结
一.基本内容 1.简单来说,HTML5提供的新元素<canvas> 2.Canvas在HTML页面提供画布的功能,在画布中绘制各种图形 3.Canvas绘制的图形与HTML页面无关, ...
- H5(三)
Canvas(画布) 基本内容 简单来说,HTML5提供的新元素<canvas> Canvas在HTML页面提供画布的功能 在画布中绘制各种图形 C ...
- CamanJS – 提供各种图片处理的 JavaScript 库
CamanJS 是一个基于 Canvas 处理图片的 Javascript 库,结合简单易用的接口和先进高效的图像编辑技术.CamanJS 很容易扩展新的过滤器和插件,并伴随着一系列广泛的图像编辑功能 ...
- H5小内容(三)
Canvas(画布) 基本内容 简单来说,HTML5提供的新元素<canvas> Canvas在HTML页面提供画布的功能 在画布中绘制各种图形 C ...
- android图像处理系列之七--图片涂鸦,水印-图片叠加
图片涂鸦和水印其实是一个功能,实现的方式是一样的,就是一张大图片和一张小点图片叠加即可.前面在android图像处理系列之六--给图片添加边框(下)-图片叠加中也讲到了图片叠加,里面实现的原理是直接操 ...
- html2canvas+Canvas2Image分享海报功能踩坑
首先需要 import html2canvas from 'html2canvas'; import {Canvas2Image} from '../../assets/js/plug/canvas2 ...
- canvas简单处理图片(反色处理)
用canvas可以简单地处理图像,比如切割 灰色处理等,今天记下的是图像的反色处理. <!DOCTYPE html> <html> <head> <meta ...
随机推荐
- TP为什么这个if判断什么都不显示?
既不显示aaa也不显示bbb这是为什么? <if condition="isset(session('name'))"> aaa <else /> bbb ...
- js判断PC端与移动端跳转
在网上看到很多这样类似的代码,但是有的很复杂,或者有的没有判断完全,上次经理去见完客户回来讲,使用苹果浏览打开pc端(pc已经做了识别跳转)会自动跳转到移动端的网页去,后来经测试才发现 documen ...
- Ubuntu下快速配置Caffe
Caffe安装 实际上在windows上安装过多次caffe了,无论是BLVC版本的还是Microsoft版本的,ubuntu的按照也进行过,这段时间在自己笔记本上 又折腾了下caffe安装,发现其实 ...
- Console.WriteLine 不会输出到unity控制台
1,Console.WriteLine() 是输出到控制台程序(console application)的命令 2,Unity中控制台是一个独立的程序,要想输出到Unity控制台需要使用Debug.L ...
- List of features and minimum Clang version with support
#1: C++11 Language Feature C++11 Proposal Available in Clang? Rvalue references N2118 Clang 2.9 ...
- You-Dont-Need-JQuery (你不需要JQuery)
看完这篇文章我才觉得真的要用JQuery ,因为实在是有些地方设计的使用太复杂了, document.querySelector() 和 Document.querySelectorAll 的确是很方 ...
- nfs+inotify
服务器先安装nfs服务,因为nfs服务端没有固定端口给客户端访问,所以需要借助rpc服务的111端口给客户端连接,即客户端访问rpc会调用nfs服务 yum -y install rpcbind nf ...
- myeclipse 字体设置为UTF-8
将myeclipse设置成utf-8格式的方式如下: 1.windows->Preferences打开"首选项"对话框,如图: 2.点击左侧导航树,导航到general-&g ...
- 小学生都能学会的python(闭包和迭代器)
小学生都能学会的python(闭包和迭代器) 1. 函数名第一类对象 函数名其实就是变量名 1). 可以像变量一样互相赋值. 2). 可以作为函数的参数,进行传递 3). 可以作为返回值返回 4). ...
- Git:与GitHub搭配及SSH登录
远程库(GitHub)上的地址 搭建本地库 准备一个文件 将地址用别名存在git上 推送到远程库 克隆 克隆的效果 1)完整的把远程库下载到本地 2)别名也完整保留 3)同时也初始化了本地库 邀请团队 ...