これは、stackoverflow での最初の投稿です。
だから私はフォトショップからこれらのカスタム .acv ファイルを持っています。私がやりたいことは、カラーマトリックスを使用してビットマップをフィルタリングしようとしていることです。そのために、これらの .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;
}