zoukankan      html  css  js  c++  java
  • 图片怀旧特效处理

    1、怀旧特效算法:

    r = 0.393r +0.769g+0.189b
    g = 0.349r + 0.686g +0.168b
    b = 0.272r +0.534g +0.131b

    2、算法的一般实现:

     public Bitmap render(Bitmap bitmap)
      {
        if(bitmap == null)return null;
    
        int width = bitmap.getWidth();
        int height = bitmap.getHeight();
    
        int[] pixels = new int[width * height];
        bitmap.getPixels(pixels ,0 , width , 0 , 0 , width , height);
        for(int i=0 ; i<height ; i++)
        {
          for(int j=0 ; j<width ; j++)
          {
            int pixel = pixels[i*width +j];
            int r = (pixel & 0x00ff0000)>>16;
            int g = (pixel & 0x0000ff00)>>8;
            int b = (pixel & 0x000000ff);
    
            int newR =(int)( 0.393*r +0.769*g+0.189*b);
            int newG =(int)( 0.349*r + 0.686*g +0.168*b);
            int newB =(int)( 0.272*r +0.534*g +0.131*b);
    
            newR = newR>255 ? 255:newR;
            newG = newG>255 ? 255:newG;
            newB = newB>255 ? 255:newB;
            pixels[i*width +j] = (pixel & 0xff000000) + (newR<<16)+ (newG<<8) +newB;
          }
        }

    3、采用ColorMatrix 实现

     public Bitmap renderColorMatrix(Bitmap bitmap)
      {
        int width = bitmap.getWidth();
        int height = bitmap.getHeight();
        Bitmap buffer = Bitmap.createBitmap(width , height , Config.ARGB_8888);
        Canvas canvas = new Canvas(buffer);
        Paint paint = new Paint();
        ColorMatrix matrix = new ColorMatrix();
        float[] array = new float[]{
        0.393f,0.769f,0.189f,0,0,
        0.349f,0.686f,0.168f,0,0,
        0.272f,0.534f,0.131f,0,0,
        0,0,0,1,0
        };
        matrix.set(array);
        paint.setColorFilter(new ColorMatrixColorFilter(matrix));
        canvas.drawBitmap(bitmap , 0,0,paint);
        return buffer;
      }
  • 相关阅读:
    TCP/IP详解学习笔记
    python 中颜色的表示
    token工作原理
    sql注入相关链接记一次SQL注入实战
    python读写不同编码txt文件
    selenium+python 优化测试报告
    一个非常好的Linux学习网站
    jmeter 正则表达式 练习
    jmeter 实战项目总结2——微信端
    jmeter 实战项目总结1
  • 原文地址:https://www.cnblogs.com/lipeil/p/2695379.html
Copyright © 2011-2022 走看看