zoukankan      html  css  js  c++  java
  • LOMO效果

    //LOMO效果
    public static Bitmap changeToLomo(Bitmap bitmap) {

    int width = bitmap.getWidth();
    int height = bitmap.getHeight();
    int dst[] = new int[width*height];
    bitmap.getPixels(dst, 0, width, 0, 0, width, height);

    int ratio = width > height ? height*32768/width : width*32768/height;
    int cx = width >> 1;
    int cy = height >> 1;
    int max = cx * cx + cy * cy;
    int min = (int) (max * (1 - 0.8f));
    int diff = max - min;

    int ri, gi, bi;
    int dx, dy, distSq, v;

    int R, G, B;

    int value;
    int pos, pixColor;
    int newR, newG, newB;
    for(int y=0; y<height; y++){
    for(int x=0; x<width; x++){
    pos = y*width + x;
    pixColor = dst[pos];
    R = Color.red(pixColor);
    G = Color.green(pixColor);
    B = Color.blue(pixColor);

    value = R<128 ? R : 256-R;
    newR = (value*value*value)/64/256;
    newR = (R<128 ? newR : 255-newR);

    value = G<128 ? G : 256-G;
    newG = (value*value)/128;
    newG = (G<128 ? newG : 255-newG);

    newB = B/2 + 0x25;

    //==========边缘黑暗==============//
    dx = cx - x;
    dy = cy - y;
    if (width > height)
    dx = (dx * ratio) >> 15;
    else
    dy = (dy * ratio) >> 15;

    distSq = dx * dx + dy * dy;
    if (distSq > min){
    v = ((max - distSq) << 8) / diff;
    v *= v;

    ri = (int)(newR * v) >> 16;
    gi = (int)(newG * v) >> 16;
    bi = (int)(newB * v) >> 16;

    newR = ri > 255 ? 255 : (ri < 0 ? 0 : ri);
    newG = gi > 255 ? 255 : (gi < 0 ? 0 : gi);
    newB = bi > 255 ? 255 : (bi < 0 ? 0 : bi);
    }
    //==========边缘黑暗end==============//

    dst[pos] = Color.rgb(newR, newG, newB);
    }
    }

    Bitmap acrossFlushBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);
    acrossFlushBitmap.setPixels(dst, 0, width, 0, 0, width, height);
    return acrossFlushBitmap;
    }

  • 相关阅读:
    c++重载operator的示例 非原创
    L1-2 倒数第N个字符串 (15 分)真坑
    error C2955: “std::xx”: 使用 类 模板 需要 模板 参数列表
    时间超限问题处理(c++)
    C语言实验1
    心理魔术
    闰年作业
    20180425
    Labview学习笔记-条件结构的两个问题
    判断文件目录或者文件是否存在
  • 原文地址:https://www.cnblogs.com/clarence/p/3837472.html
Copyright © 2011-2022 走看看