自己写个小程序,需求图片转马赛克.

protected Bitmap mosic(Bitmap bitmap){        int bitWidth = bitmap.getWidth();        int bitHeight = bitmap.getHeight();        int mosicArea = 50;//马赛克范围                /*         * 第一版         * 逻辑:         * 如果mosicArea = 50         * 则第一个像素块 50*50范围内都用[0,0]的颜色,第二个像素块用 [50,0]的颜色 ,以此类推         * 实验了一下,效率不高,手机有点卡死的感觉,但最终还是出得来         */        for(int i=0;i<bitWidth;i++){            for(int j=0;j<bitHeight;j++){                int x = i/mosicArea * mosicArea;//整除后再定位需求的那个像素                int y = j/mosicArea * mosicArea;                int iPixel = bitmap.getPixel(x,y);                bitmap.setPixel(i, j, iPixel);            }        }        return bitmap;    }

class CustomView extends View{            //第二版        //利用 canvas        private Paint pPaint;            private Canvas cCanvas;        private Bitmap bPic;        private Rect rRect;                  public CustomView(Context context, Bitmap bitmap) {                super(context);                bPic = bitmap;            pPaint = new Paint();        }                      @Override            protected void onDraw(Canvas canvas) {                cCanvas = canvas;            this.drawMosic(200,200,200,200,5);        }                protected void drawMosic(int x, int y,int width,int height,int rect){            int currentPixel;            cCanvas.drawBitmap(bPic, 0, 0, null);                        int mosicWidth = (int)Math.ceil(width/rect);            int mosicHeight = (int)Math.ceil(height/rect);                        for(int i=0;i<mosicWidth;i++){                for(int j=0;j<mosicHeight;j++){                    currentPixel = bPic.getPixel(x+i*rect, y+j*rect);                    pPaint.setColor(currentPixel);                    rRect = new Rect(x+i*rect,y + j*rect,x+(i+1)*rect,y + (j+1)*rect);                    cCanvas.drawRect(rRect, pPaint);                }            }        }

更多相关文章

  1. 设置android的布局文件的背景颜色为黑色
  2. Android 动态设置颜色
  3. Android Textview实现颜色渐变滚动效果
  4. Android TextView内容设置超链接、颜色、字体
  5. Android原生AlertDialog修改标题,内容,按钮颜色,字体大小等
  6. Android的supportV7中默认按钮的颜色设置
  7. 72、android状态栏一体化,状态栏改变颜色
  8. [Android]Menu/Button 英文全大写、Menu改变字体颜色
  9. android TextView 结合SpannableString对部分内容设置颜色、字体

随机推荐

  1. Android(安卓)杀掉自己进程的方法
  2. android按键 禁用
  3. Android(安卓)调用shell命令打印
  4. android 混淆打包后 Gson拿到的实体类转
  5. Android图片旋转,缩放,移位,倾斜,对称
  6. android 判断是否有可用网络
  7. 《android用SAX解析xml》
  8. android利用ZXing进行条码扫描二维码扫描
  9. 使用eclipse进行android C/C++ 开发环境
  10. Android(安卓)内存泄露分析