如何解析photoshop曲线文件(.acv)以获取rgb值?

时间:2015-01-19 15:46:14

标签: java android bitmap curves colormatrix

这是我在stackoverflow中的第一篇文章。

所以我有来自photoshop的这些自定义.acv文件,我想要做的是我尝试使用colormatrix过滤位图。为此,我正在解析那些.acv文件,以获得colormatrix使用的rgb值。我怎样才能做到这一点?

已编辑:这是我想用.acv文件中的RGB值提供的colormatrix代码。唯一剩下的就是如何提取这些值。

private Bitmap filterBitmap(Bitmap bitmap) {
    Bitmap bitmapResult = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888);

    Canvas canvasResult = new Canvas(bitmapResult);
    Paint paint = new Paint();

    // R' = a*R + b*G + c*B + d*A + e;
    // G' = f*R + g*G + h*B + i*A + j;
    // B' = k*R + l*G + m*B + n*A + o;
    // A' = p*R + q*G + r*B + s*A + t;
    float m = 255f;
    float t = -255 * 128f;
    ColorMatrix colorMatrix = new ColorMatrix(new float[]{
            m, 0, 0, 1,
            0, m, 0, 1,
            0, 0, m, 1,
    });
    ColorMatrixColorFilter filter = new ColorMatrixColorFilter(colorMatrix);
    paint.setColorFilter(filter);
    canvasResult.drawBitmap(bitmap, 0, 0, paint);

    return bitmapResult;
}

1 个答案:

答案 0 :(得分:0)

我通过将曲线应用于完整调色板图像然后从结果图像中提取rgb值来实现此目的。这是源图像:

enter image description here

但是我已经这样做了因为我在OpenGL片段着色器中这样做了。这就是为什么它具有低分辨率而不是非常准确的结果(但非常好)。