114. Hooking the image negative filter with the Vector API
An image is basically a matrix of pixels represented in the Alpha, Red, Green, Blue (ARGB) spectrum. For instance, an image of 232x290 can be represented as a matrix of 67,280 pixels. Applying specific filters (sepia, negative, grayscale, and so on) to an image typically requires processing each pixel from this matrix and performing certain calculations. For instance, the algorithm for applying the negative filter to an image can be used as follows:
Figure 5.11: Apply the negative filter effect to an image
For each pixel, we extract the color components A, R, G, and B. We subtract the R, G, and B values from 255, and finally, we set the new value to the current pixel.
Let’s assume that we have an array (pixel[]
) containing all pixels of an image. Next, we want to pass pixel[]
as an argument to a method powered by the Vector API capable of applying the negative filter and setting the new values directly...