我需要删除所有三个平台 Android、IOS 和 Web 上的 flutter 中的图像背景。
例如:我有来自画廊或相机的图像,需要使背景透明。
任何人都知道如何在没有 SDK 或任何第三方 API 的情况下做到这一点。 截至目前,我正在使用“https://www.remove.bg/”,但它太大了
紧急请帮忙。
我有一个解决方案,但仅适用于“白色”像素。如果由于某些原因您不想删除白色像素,请查看第二部分。
首先在
image
上安装pubspec.yaml
软件包:
dependencies:
flutter:
sdk: flutter
image: ^3.0.8
以下功能有效:
import 'dart:io';
import 'package:image/image.dart' as img;
void makeTransparentBackground(File imageFile) {
img.Image image = img.decodeImage(imageFile.readAsBytesSync())!;
int white = img.getColor(255, 255, 255, 255);
for (int y = 0; y < image.height; y++) {
for (int x = 0; x < image.width; x++) {
if (image.getPixel(x, y) == white) {
image.setPixelRgba(x, y, 0, 0, 0, 0);
}
}
}
File('imgNoBg.png')..writeAsBytesSync(img.encodePng(image));
}
我认为这是最好的选择,你可以在这里查看remove.bg的文档:https://www.remove.bg/fr/api