If I load an image, how can I loop through all its pixels and turn the white ones (or which ever color I specify) to be turned transparent?
I have an idea on how to do this, but the looping process should be like a 2d array, so it would involve two for loops.
I was thinking I would start on the top row first pixel, iterating to the right, if its a white pixel, then i turn it transparent, and move 1 pixel to the right, if its not white, then I stop. Then in the same row, I start from the left most pixel, and check, if white, I turn it transparent, then move 1 pixel to the left, etc, etc…
Then I move 1 row down and repeat the whole process..
This way I don’t remove any white pixels in the actual image.
Its pretty simple to do using
getImageDataandputImageDatajust note you can take a pretty significant hit on performance the larger the image gets. You just need to determine if the current pixel is white, then change its alpha to 0.Live Demo
It was also asked if you could make the values sort of fuzzy to check. Its really easy, just check if its in a certain range. The following will turn off white to pure white transparent.
More resources