画布上绘制的对象上的getPixels和setPixels

时间:2013-12-23 13:32:32

标签: android

我在自定义视图上创建了一条对角白线,从屏幕的一个角落到另一个角落 -

canvas.drawLine(0, 0, MainActivity.width+10, MainActivity.height, paint);

我知道如何在Bitmap上获取像素和setPixels,就像这样 -

public Bitmap generateAlphaMask(Bitmap bmpTop,Bitmap bmpBottom) {
    int width = bmpTop.getWidth();
    int height = bmpTop.getHeight();

    boolean[][] res = new boolean[width][height];
    int[] colors = new int[width * height];
    bmpTop.getPixels(colors, 0, width, 0, 0, width, height);

    for (int x = 0; x < width; ++x) {
        for (int y = 0; y < height; ++y) {
            int cell = y * width + x;
            int redVal = Color.red(colors[cell]);
            int greenVal = Color.green(colors[cell]);
            int blueVal = Color.blue(colors[cell]);

            int alpha = Color.alpha(colors[cell]);

            res[x][y] = alpha == ALPHA_THRESHOLD;

            if (res[x][y]) {
                bmpBottom.setPixel(x, y, Color.TRANSPARENT);
            }
        }
    }

    return bmpBottom;
}

但我想在画布中存储像素为“非白色”的像素位置。 请帮我解决这个问题。

0 个答案:

没有答案