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处理图片的更多相关文章

  1. HTML5 canvas处理图片的各种效果,包括放大缩小涂鸦等

    http://www.htmleaf.com/ziliaoku/qianduanjiaocheng/201502151385.html jQuery 缩放 旋转 裁剪图片 Image Cropper ...

  2. Canvas处理头像上传

    未分类 最近社区系统需要支持移动端,其中涉及到用户头像上传,头像有大中小三种尺寸,在PC端,社区用Flash来处理头像编辑和生成,但该Flash控件的界面不友好而且移动端对Flash的支持不好,考虑到 ...

  3. Canvas 基本绘图方法总结

    一.基本内容  1.简单来说,HTML5提供的新元素<canvas>  2.Canvas在HTML页面提供画布的功能,在画布中绘制各种图形  3.Canvas绘制的图形与HTML页面无关, ...

  4. H5(三)

    Canvas(画布)   基本内容     简单来说,HTML5提供的新元素<canvas>     Canvas在HTML页面提供画布的功能       在画布中绘制各种图形     C ...

  5. CamanJS – 提供各种图片处理的 JavaScript 库

    CamanJS 是一个基于 Canvas 处理图片的 Javascript 库,结合简单易用的接口和先进高效的图像编辑技术.CamanJS 很容易扩展新的过滤器和插件,并伴随着一系列广泛的图像编辑功能 ...

  6. H5小内容(三)

    Canvas(画布)   基本内容     简单来说,HTML5提供的新元素<canvas>     Canvas在HTML页面提供画布的功能       在画布中绘制各种图形     C ...

  7. android图像处理系列之七--图片涂鸦,水印-图片叠加

    图片涂鸦和水印其实是一个功能,实现的方式是一样的,就是一张大图片和一张小点图片叠加即可.前面在android图像处理系列之六--给图片添加边框(下)-图片叠加中也讲到了图片叠加,里面实现的原理是直接操 ...

  8. html2canvas+Canvas2Image分享海报功能踩坑

    首先需要 import html2canvas from 'html2canvas'; import {Canvas2Image} from '../../assets/js/plug/canvas2 ...

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

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

随机推荐

  1. 大话主席(superslide和 touchslide)插件的使用

    对于实现效果来说,插件的办事效率真的是太高了,而且里边也被处理过兼容性,用起来实在是特别方便,现在我们来说说大话主席中的slide插件,它分为pc端(superslide)和移动端(touchslid ...

  2. sklearn学习6----交叉验证

    1.kfold:自己分样本来交叉验证迭代 导入模块:from sklearn.model_selection import KFold 参数: KFold(n_splits=3, shuffle=Fa ...

  3. UVALive-7198 Tall orders 微积分 二分

    题目链接:https://cn.vjudge.net/problem/UVALive-7198 题意 有悬链线方程$ f(x)=a \cdot cosh(\frac{s}{a}) $, 现有两个电线杆 ...

  4. [luogu4195 Spoj3105] Mod (大步小步)

    传送门 题目描述 已知数a,p,b,求满足a^x≡b(mod p)的最小自然数x. 输入输出格式 输入格式: 每个测试文件中最多包含100组测试数据. 每组数据中,每行包含3个正整数a,p,b. 当a ...

  5. [读书笔记] Python 数据分析 (十一)经济和金融数据应用

    resample: 重采样函数,可以按照时间来提高或者降低采样频率,fill_method可以使用不同的填充方式. pandas.data_range 的freq参数枚举: Alias Descrip ...

  6. VUE使用中踩过的坑

    前言 vue如今可谓是一匹黑马,github star数已居第一位!前端开发对于vue的使用已经越来越多,它的优点就不做介绍了,本篇是我对vue使用过程中以及对一些社区朋友提问我的问题中做的一些总结, ...

  7. Vue引用第三方datepicker插件无法监听datepicker输入框的值

    一.背景 在Vue项目中使用了第三方的datepicker插件,在选择日期后vue无法检测到datepicker输入框的变化 <label class="fl">日期: ...

  8. a标签设置高度不生效问题

    <a>是内联元素 必须设置成块级元素block 才能有width和height 不过你可以又定义display:block再定义成display:inline 以避免在IE6下产生BUG ...

  9. jvm 虚拟机参数_堆内存分配

    1.参数 -XX:+PrintGC 只要遇到 GC 就会打印日志 -XX:+UseSerialGC 配置串行回收器 -XX:+PrintGCDetails 查看详细信息,包括各个区的情况 -XX:+P ...

  10. pip安装-mac电脑

    If you meant "pip" specifically: Homebrew provides pip via: `brew install python`. However ...