我正在开发一个自定义颤振插件,我将颤振图像相机发送到 swift 并使用颤振相机插件(https://pub.dev/packages/camera)创建一个 UIImage 。为此,我使用此方法发送相机图像字节:
startImageStream((CameraImage img) {
sendFrameBytes(bytesList: img.planes.map((plane) {
return plane.bytes;
}).toList(),
)}
Run Code Online (Sandbox Code Playgroud)
平面包含一个数组,其中包含图像的 RGBA 字节。在 swift 代码中,我将 RGBA 字节作为 NSArray 并创建一个像这样的 UIImage:
func detectFromFrame1(args:NSDictionary, result:FlutterResult){
var rgbaPlan = args["bytesList"] as! NSArray
let rgbaTypedData = rgbaPlan[0] as! FlutterStandardTypedData
let rgbaUint8 = [UInt8](rgbaTypedData.data)
let data = NSData(bytes: rgbaUint8, length: rgbaUint8.count)
let uiimage = UIImage(data: data as Data)
print(uiimage)
}
Run Code Online (Sandbox Code Playgroud)
问题是rgbaTypedData,rgbaUint8,data不为空,创建的uiimage总是nil,不明白问题出在哪里。