zoukankan      html  css  js  c++  java
  • 图像操作小结

    花了两天时间弄图像. 今天做一个小结

    关于图像操作. 小结

    相关类.
    Drawable  就是一个可画的对象. 官方文档原话是:A Drawable is a general abstraction for "something that can be drawn."
    Canvas 画布. 官方文档如是说: 用这个类来画一些东西, 前提要有4个基本的部件
        1. 一个bitmap用来确定像素. 可以看一下Canvas() 的构造函数, 有三个: Canvas(); Canvas(Bitmap); Canvas(long); 最后一个是隐藏的, 所以用Canvas的时候只会用到前两个
        2. 一个Canvas 是画布
        3. 一些基本的元素(像Rect, Path, text, Bitmap这些)
        4. 一个画笔(用来确定颜色与风格)
    Bitmap 位图, 用来处理图像. 获取位图的信息. 比如尺寸, 像素, 位深, alpna, 颜色格式之类. 还可以操作像素值.
    Matrix    矩阵. 用来处理图像的工具. 不用多解释了

    1. 先加载进来, 图像源一般有三类. 网络类型, 本地文件, 资源文件
        BitmapFactory.decodeByteArray()
        BitmapFactory.decodeResource()
        BitmapFactory.decodeFile()
        
        从网络加载的话  一般都会使用第三方库
        所以, 加载图像只要使用BitmapFactory就可以了
        
    2. 对图像进行操作
        缩放操作.
        
        /** 1. 直接创建一个缩放后的图像. 最后一个参数为true 表示变形的时候抗锯齿 */
        Bitmap.createScaledBitmap(srcBitmap, width, height, true);    
        
        /** 2. 绘制到Canvas后, 使用矩阵进行操作. (使用矩阵可以抗锯齿) */
        Matrix matrix = new Matrix();
        matrix.postScale(scale,scale,0,0);
        canvas.drawBitmap(bmp, matrix, null);
        
        #. 关于图像缩放变形后的抗锯齿, 除了上面说的两种方法. 还是下面的两种方法
        1. 对Paint使用抗锯齿
        paint.setAntiAlias(true);
        canvas.drawBitmap(bmp, 0,0,paint);
        2. 给canvas加抗锯齿
        canvas.setDrawFilter(new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG));
        
        图像拼接.
        将图像放到canvas上面操作. 怎么弄都行. 拼接,缩放,移动,旋转,裁剪...
        常用操作以及一些其它的特效处理. 可以参考下面的连接
        http://www.cnblogs.com/bill-joy/archive/2012/06/29/2570279.html
        http://www.cnblogs.com/feisky/archive/2010/01/10/1643460.html
        
       

  • 相关阅读:
    面向对象高级
    面向对象基础总结
    面向对象基础剩余
    组合和封装
    继承与派生
    面向对象
    4.10
    4.9
    常用模块
    【转】CentOS: 开放80、22、3306端口操作
  • 原文地址:https://www.cnblogs.com/emyueguang/p/5294586.html
Copyright © 2011-2022 走看看