StretchDIBits绘制原始YUV异常

本文介绍了使用StretchDIBits绘制原始YUV图片时遇到的花屏倾斜问题,提出通过先对YUV图像进行缩放至特定分辨率(如1920*1280)以确保正常绘制的方法,并邀请读者分享更多解决方案。
摘要由CSDN通过智能技术生成

StretchDIBits绘制原始YUV图片,图片的大小是1366 * 768,界面出现花屏倾斜。
1、解决方法,将原始YUV格式大小,进行YUV缩放,达到StretchDIBits可正常绘制的分辨率,比如:1920*1280等等。

//GDI绘制YUV格式的原始数据
void GDIDrawYUV(uint8_t* data, int w, int h)
{
    static const int dw = 1280;
    static const int dh = 1080;

    unsigned char * dstyuv = new unsigned char[dw * dh * 3 / 2];

    //libyuv进行YUV数据大小转换
    libyuv::I420Scale(
        data, w,
        data + w * h, w / 2,
        data + w * h + w * h / 4, w / 2, w, h,
        dstyuv, dw,
        dstyuv + dw * dh, dw / 2,
        dstyuv + dw * dh + dw * dh / 4, dw / 2, dw, dh, libyuv::FilterMode::kFilterNone);

    unsigned char * sprgb = new unsigned char[dw*dh * 3];

	//libyuv进行YUV转换成RGB24
    libyuv::I420ToRGB24(dstyuv, dw,
        dstyuv + dw * dh, dw / 2,
        dstyuv + dw * dh + dw * dh / 4, dw / 2,
        sprgb, dw * 3, dw, dh);

    HDC hdc = GetDC(_playWnd);

    BIT
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值