LIBYUV
+ -

libyuv::YUY2ToARGB

2024-08-23 18 0

libyuv::YUY2ToARGB转出来的实际格式为:BGRA

libyuv::YUY2ToARGB 函数用于将 YUY2 格式的图像转换为 ARGB 格式的图像。以下是一个简单的示例,展示了如何使用 libyuv::YUY2ToARGB 函数来转换一个分辨率为 1280x720 的图像:

#include <libyuv.h>
#include <iostream>

int main() {
    const int width = 1280;
    const int height = 720;

    // 分配内存空间
    uint8_t* yuy2_data = new uint8_t[width * height * 2]; // YUY2 格式需要宽高的 2 倍空间
    uint8_t* argb_data = new uint8_t[width * height * 4]; // ARGB 格式需要宽高的 4 倍空间

    // 假设 yuy2_data 已经被填充了有效的 YUY2 数据
    // ...

    // 使用 libyuv 进行转换
    int result = libyuv::YUY2ToARGB(yuy2_data, width * 2, // YUY2 数据的步长
                                    argb_data, width * 4, // ARGB 数据的步长
                                    width, height);

    if (result != 0) {
        std::cerr << "libyuv::YUY2ToARGB failed with error code: " << result << std::endl;
        delete[] yuy2_data;
        delete[] argb_data;
        return -1;
    }

    // 现在 argb_data 包含了转换后的 ARGB 数据
    // 可以进行后续处理,比如保存到文件或显示到屏幕上
    // ...

    // 释放内存空间
    delete[] yuy2_data;
    delete[] argb_data;

    return 0;
}

说明:

  1. 内存分配

    • yuy2_data 的大小为 width * height * 2 字节,因为 YUY2 格式每个像素占用 2 字节。
    • argb_data 的大小为 width * height * 4 字节,因为 ARGB 格式每个像素占用 4 字节。
  2. libyuv::YUY2ToARGB 函数参数

    • 第一个参数是指向 YUY2 数据的指针。
    • 第二个参数是 YUY2 数据的步长,通常是图像的宽度乘以每个像素的字节数(对于 YUY2 是 2)。
    • 第三个参数是指向 ARGB 数据的指针。
    • 第四个参数是 ARGB 数据的步长,通常是图像的宽度乘以每个像素的字节数(对于 ARGB 是 4)。
    • 第五个和第六个参数分别是图像的宽度和高度。
  3. 错误处理

    • 如果 YUY2ToARGB 返回非零值,则表示转换失败,你可以通过检查返回值来了解具体的错误原因。

在实际应用中,你需要确保 yuy2_data 中已经填充了有效的 YUY2 数据,然后调用 YUY2ToARGB 进行转换。转换完成后,你可以对 argb_data 进行进一步处理。

0 篇笔记 写笔记

UYVY格式详解
UYVY(属于 YUV 422 Interleaved) UYVY 属于 YUV 422 Interleaved 的一种。在 Packed 内部,YUV 的排列顺序是 UYVY,两个 Y 共用一组 UV。U Y V Y U Y V Y U Y V YU Y V Y U Y V Y ......
YUY2/YUYV格式详解
YUYU2又YUYV, V422 或 YUNV在YUY2格式中,数据可以被视为一个无符号字符值的数组,其中第一个字节包含第一个Y样本,第二个字节包括第一个U(Cb)样本,第三个字节包含第二个Y样本和第四个字节包含首个V(Cr)样本,如下图所示。YUY2是YUV422格式中的一种。YUY2的总......
libyuv::YUY2ToARGB
libyuv::YUY2ToARGB转出来的实际格式为:BGRAlibyuv::YUY2ToARGB 函数用于将 YUY2 格式的图像转换为 ARGB 格式的图像。以下是一个简单的示例,展示了如何使用 libyuv::YUY2ToARGB 函数来转换一个分辨率为 1280x720 的图像:#in......
作者信息
站长漫谈
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!