Есть такой
зверь для преобразования цветов. Т.е. цвет из 4 значений (включая прозрачность) как-то преобразуется с помощью такой матрицы:
float[][] colorMatrixElements = {
new float[] {2, 0, 0, 0, 0}, // red scaling factor of 2
new float[] {0, 1, 0, 0, 0}, // green scaling factor of 1
new float[] {0, 0, 1, 0, 0}, // blue scaling factor of 1
new float[] {0, 0, 0, 1, 0}, // alpha scaling factor of 1
new float[] {.2f, .2f, .2f, 0, 1}}; // three translations of 0.2
К примеру, это инвертирование цвета:
new float[] {-1, 0, 0, 0, 0},
new float[] {0, -1, 0, 0, 0},
new float[] {0, 0, -1, 0, 0},
new float[] {0, 0, 0, 1, 0},
new float[] {1, 1, 1, 0, 1}
Кто уловил суть? Почему, к примеру, инвертирование нельзя написать так:
new float[] {-1, -1, -1, 1, 0},
new float[] {0, 0, 0, 0, 0},
new float[] {0, 0, 0, 0, 0},
new float[] {0, 0, 0, 0, 0},
new float[] {1, 1, 1, 0, 1}
Т.е. для всех цветов в 1 строчке...