您似乎已经在完成将图像转换为base64并返回的所有工作:
List<int> imageBytes = pickedImage.readAsBytesSync();String imageB64 = base64Enpre(imageBytes);Uint8List depred = base64Depre(imageB64);
至于为您使用它
FirebaseVisionImage,我不确定我能提供多少帮助,因为我对该类没有经验(我假设您正在使用firebase_ml_vision库)。然而,看着来源的
FirebaseVisionImage,有一个工厂构造
fromBytes以及
fromFile,虽然这是一个有点更复杂的使用。但是,如果您可以使其正常运行,则可能是更适合您需要的构造函数:
// metadata values based on an RGBA-enpred 1920x1080 image// You will have to change these values to fit your specific imagesfinal planemetadata = FirebaseVisionImagePlanemetadata( width: 1920, height: 1080, bytesPerRow: 1920 * 4,);final metadata = FirebaseVisionImagemetadata( size: Size(1920, 1080), planedata: planemetadata, // From https://developer.apple.com/documentation/corevideo/1563591-pixel_format_identifiers?language=objc // kCVPixelFormatType_32RGBA rawFormat: 'RGBA', );final visionImage = FirebaseVisionImage.fromBytes(depred, metadata);
另外,您可以将字节保存到一个临时文件中并使用:
// Assuming the source image is a PNG imageFile imgFile = File('tempimage.png');imgFile.writeAsBytesSync(depred.ToList());final visionImage = FirebaseVisionImage.fromFile(imgFile);


