gpt4 book ai didi

ios - 将相机图像抖动到 swift UIimage

转载 作者:行者123 更新时间:2023-12-01 15:36:36 26 4
gpt4 key购买 nike

我正在开发一个自定义 flutter 插件,我将 flutter 图像相机发送到 swift 并使用 flutter 相机插件( https://pub.dev/packages/camera )创建一个 UIImage 。
为此,我使用此方法发送相机图像字节:

startImageStream((CameraImage img) {
sendFrameBytes(bytesList: img.planes.map((plane) {
return plane.bytes;
}).toList(),
)}
平面包含一个数组,其中包含图像的 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)
}
问题是rgbaTypedData,rgbaUint8,data不为空,创建的uiimage总是nil,不明白问题出在哪里。

最佳答案

我有同样的问题。我使用的一种解决方法是在 flutter 中将图像转换为 jpg 并获取并将字节提供给 iOS/ native 代码。
缺点是它很慢而且不能用于实时使用
更新:
代码示例(Flutter & TFLite 包)
套餐:
https://pub.dev/packages/image
https://pub.dev/packages/tflite
代码:

     _cameraController.startImageStream((_availableCameraImage)
{
imglib.Image img = imglib.Image.fromBytes(_availableCameraImage.planes[0].width, _availableCameraImage.planes[0].height, _availableCameraImage.planes[0].bytes);
Uint8List imgByte = imglib.encodeJpg(img);
Tfliteswift.detectObjectOnBinary(binary: _availableCameraImage.planes[0].bytes);
}

关于ios - 将相机图像抖动到 swift UIimage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57828792/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com