Вычесть режим смешивания с помощью ColorMatrixFilter в Android?

У меня есть следующий ColorMatrixFilter. Но я хочу использовать его как маску для режима Subtract-Blend, а не использовать его напрямую. Как мне добиться этого?

ColorMatrix:

colorMatrix[ 0.393, 0.7689999, 0.18899999, 0, 0, 0.349, 0.6859999, 0.16799999, 0, 0, 0.272, 0.5339999, 0.13099999, 0, 0, 0,0,0,1,0 ]; 

Solutions Collecting From Web of "Вычесть режим смешивания с помощью ColorMatrixFilter в Android?"

Я не эксперт в компьютерной графике, но я предполагаю, что вы хотите итерации через каждый пиксель изображения, который хотите смешать, colorMatrix свою colorMatrix на каждом пикселе, colorMatrix среднее значение, используя окружающие пиксели, с colorMatrix ваша матрица контактирует, Затем примените это среднее значение к вашему пикселю. Очевидно, вам нужно будет обработать крайние пиксели.

Пример: предположим, что у вас есть 5×4 изображение с пиксельными значениями

  1 2 3 4 5 1 1000 1000 1000 1000 1000 2 1000 1000 1000 1000 1000 3 1000 1000 1000 1000 1000 4 1000 1000 1000 1000 1000 

(1) Принимая пиксель в позиции (3,3) и применяя матрицу преобразования – т.е. умножая пиксель изображения (i,j) на позицию матрицы (i,j) – получаем

  1 2 3 4 5 1 393 769 189 0 0 2 349 686 168 0 0 3 272 534 131 0 0 4 0 0 0 1000 0 

(2) Теперь, беря среднее значение этого преобразования, т.е. добавляем все числа и делим на 20 – получаем 224,5 или приблизительно 225. Таким образом, наше новообразованное изображение будет выглядеть так:

  1 2 3 4 5 1 1000 1000 1000 1000 1000 2 1000 1000 1000 1000 1000 3 1000 1000 225 1000 1000 4 1000 1000 1000 1000 1000 

Чтобы получить полную композицию вычитания, сделайте это для каждого пикселя.

EDIT: на самом деле я думаю, что вышеизложенное может быть гауссовским размытием.