首页 > 代码库 > 6月8号=》105页-110页

6月8号=》105页-110页

4.6  位图处理

  4.6.1  位图裁剪

      CanvasRenderingContext2D提供了一个clip()方法,这个方法会吧Canvas的当前路径裁剪下来。

      一旦调用了CanvasRenderingContext2D对象的clip()方法之后,接下来向Canvas绘制图形时,

      只有被clip()剪裁的路径覆盖的部分才会被显示出来。

      实现位图剪裁的步骤如下:

        1:将需要从位图上剪裁的部分定义成Canvas上的路径。

        2:调用CanvasRenderingContext2D的clip()方法吧路径剪裁下来。

        3:绘制位图-此时只有被clip()剪裁的路径覆盖的部分才会被显示出来。

 

  4.6.2  像素处理

      CanvasRenderingContext2D还提供了如下两个功能非常强大的像素处理方法。

        getImageData(int x,int y,int width,int height):该方法获取Canvas上从(x,y)点开始,

          宽为width、高为height的图片区域的数据。该方法的返回值是一个CanvasPixelArray对象,

          该对象具有width、height、data等属性。其中data属性是一个形如[r1,g1,b1,a1,

          r2,g2,b2,a2, r3,g3,b3,a3,````rN,gN,bN,aN]的数组,该数组中每4个元素对应一个像素点。

        putImageData(CanvasPixelArray data,x,y):该方法负责吧data里的数据放入Canvas中从(x、y)

          点开始的区域。该方法将会直接改变Canvas上的图像数据。

 

4.7  输出位图

    当程序通过CanvasRenderingContext2D在Canvas上绘图完成后,还可调用Canvas提供的如下方法来输出位图:

      toDataURL(String type):该方法把Canvas对应的位图编码成DataURL格式的字符串。该方法的type参数

        是一个形如image/png格式的MIME字符串。