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

How to parse photoshop curve file(.acv) to get the rgb values?

这是我在 Whosebug 中的第一个 post。

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

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

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;
}

我通过将曲线应用于完整调色板图像然后从生成的图像中提取 rgb 值来执行此操作。这是源图片:

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