void initState() { super.initState() ; loadAssetAsUint8List("assets/yuv/1_uyvy.yuv").then((yuvRawData){ rgbga1 = YuvConverter.yuv422uyvyToRgba8888(yuvRawData, 512, 512) ; setState(() { loadAssetAsUint8List("assets/yuv/1_nv21.yuv").then((yuvRawData){ rgbga2 = YuvConverter.yuv420NV21ToRgba8888(yuvRawData, 512, 512) ; setState(() { Future<Uint8List> loadAssetAsUint8List(String assetPath) async { // 使用rootBundle加载assets中的文件 final ByteData data = await rootBundle.load(assetPath); // 将ByteData转换为Uint8List final Uint8List uint8List = data.buffer.asUint8List(); return uint8List; github: https://github.com/menshen/flutter_yuv_converter 为什么要用Flutter? Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。 Flutter有哪些与众不同 1. Beautiful - Flutter 允许你控制屏... 使用本机代码(Java)在Dart中将YUV转换为RGB的完整工作示例 为什么需要它? 就个人而言,我在使用由库训练的模型制作遇到问题。 由于该库要求使用RGBA图像类型进行预测,并且插件会生成YUV图像,因此,我花了几天时间寻找有效的转换解决方案。 在阅读了很多与我一样处境艰难的例子之后,并经过大量的反复试验,我设法为我的目的找到了一个不错的解决方案。 解决方案简介 在尝试了几个示例之后,最好的解决方案似乎是使用本机代码(Java)来转换图像。 在页面初始化时正在打开 ,从而允许直接连接以将帧的内容向前和向后传输到转换功能或从转换功能传输来。 平均转换时间: 转换速度取决于手机本身+您为CameraController选择的质量。 以下是经过测试的2种不同物理设备的结果: Redmi注意事项4: 低质量: 〜0.03-0.06秒。 YUV格式有两大类:planar和packed。对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。对于packed的YUV格式,每个像素点的Y,U,V是连续交*存储的。 YUV,分为三个分量,“Y”表示明亮度(Luminance或Luma),也就是灰度值;而“U”和“V” 表示的则是色度(Chrominance或Chroma),作用是描... project.extensions.getByType Extension of type ‘AndroidComponentsExtension‘ does not exist 解决 清风拂柳叶: 继承Plugin,重写apply方法,里面的参数就是target: Project类型 Android反射@hide API 方法、变量,支持Android11和Android12 mldxs: https://gitee.com/gggl/reflect_helper Android反射@hide API 方法、变量,支持Android11和Android12 mldxs: https://gitee.com/gggl/reflect_helper project.extensions.getByType Extension of type ‘AndroidComponentsExtension‘ does not exist 解决 hiccupfrost: 你好,请问这个target是哪里来的? Android反射@hide API 方法、变量,支持Android11和Android12 学技术就要有野心和要心静如水: implementation 'com.gitee.gggl:reflect_helper:1.1' 按这个下载依赖下载不了,请问你是放在哪个仓库?
github:
https://github.com/menshen/flutter_yuv_converter