colorToAlpha static method
Makes pixels of the image transparent if color is defined as r, g, b.
returns an image, yet to be encoded.
Implementation
static Image colorToAlpha(Image image, int r, int g, int b) {
if (image.numChannels == 3) {
image = image.convert(numChannels: 4);
}
var data = image.data!;
for (var row = 0; row < data.height; row = row + 1) {
for (var col = 0; col < data.width; col = col + 1) {
var p = data.getPixel(col, row);
if (p.r.toInt() == r && p.g.toInt() == g && p.b.toInt() == b) {
p.setRgba(r, g, b, 0);
}
}
}
return image;
// for (var i = 0; i < length; i = i + 4) {
// if (pixels[i] == r && pixels[i + 1] == g && pixels[i + 2] == b) {
// pixels[i + 3] = 0;
// }
// }
// set the fact that it now has an alpha channel, else it will not work if prior rgb
// image.channels = Channels.rgba;
}