Skip to content

Instantly share code, notes, and snippets.

@plateaukao
Created April 13, 2019 05:18
Show Gist options
  • Save plateaukao/ebb5e7169dd89cc52bda338762d4997e to your computer and use it in GitHub Desktop.
Save plateaukao/ebb5e7169dd89cc52bda338762d4997e to your computer and use it in GitHub Desktop.
image remove background in flutter
Future<Uint8List> _downloadImage() async {
String dir = (await getApplicationDocumentsDirectory()).path;
File file = new File('$dir/$_filename');
if (file.existsSync()) {
var image = await file.readAsBytes();
return image;
} else {
var response = await http.get(_url,);
var bytes = response.bodyBytes;
Uint8List newPng = await removeWhiteBackground(bytes);
file.writeAsBytes(newPng);
return newPng;
}
}
Future<Uint8List> removeWhiteBackground(Uint8List bytes) async {
Img.Image image = Img.decodeImage(bytes);
Img.Image transparentImage = await colorTransparent(image, 255, 255, 255);
var newPng = Img.encodePng(transparentImage);
return newPng;
}
Future<Img.Image> colorTransparent(Img.Image src, int red, int green, int blue) async {
var pixels = src.getBytes();
for (int i = 0, len = pixels.length; i < len; i += 4) {
if(pixels[i] == red
&& pixels[i+1] == green
&& pixels[i+2] == blue
) {
pixels[i + 3] = 0;
}
}
return src;
}
@hydev777
Copy link

hydev777 commented Oct 2, 2023

This coded worked for me, thanks!

@Aishh2211
Copy link

Its not removing background , making the shade of white greyish

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment