码迷,mamicode.com
首页 > 其他好文 > 详细

RGB保存 .bmp文件踩坑记

时间:2020-07-04 18:28:43      阅读:71      评论:0      收藏:0      [点我收藏+]

标签:操作   src   技术   长度   info   打不开   必须   mp4   搜索   

应用场景: windows屏幕截屏写mp4文件。

但播放出的图像是倾斜的

技术图片

 

解决思路过程:

 

 

 

 1.  截屏出来的数据是RGB的,写MP4文件需要经过RGB24->YUV420转换。 怀疑RGB数据本身存在点问题。

  2. 尝试将RBG数据写bmp文件, 写完的文件无论如何也打不开, 为此我特意研究了BMP包头, 确定是没问题的。 但问题是画图软件根本就是打不开, 问题到底出在那呢?既然

mp4文件能播放出来证明整个截屏调用过程,数据内容本身是不存在问题的。

  3. 后来我想到我改了开源代码, 分辨率由原来1920 改为1366 (因为电脑分辨率就是1366*768)

  4. 尝试在1920分辨率的机器运行,同样代码, 写的bmp文件, mp4文件均是正确的。    结论证明, 问题跟分辨率有关

  5. 在网上搜索1366分辨率下写bmp文件失败的问题, 才知道图像以行来扫描的且必须是4的倍数。不够的就以0来填充。

  6. 我一真没理解怎么个填充法。 通过实际尝试,如下操作可以让图片正常显示。

技术图片技术图片

 

     每个字段代表含义就不此描述了, 网上很多。 重点关注  3148800这个是RGB图像的长度,但实际RGB写的长度是1366*768*3=3147264, 其它的就用00或者FF来填充。保证整个文件的大小是3138854。

技术图片

 

 

   无意中尝试解决此问题的. (我直接用系统截屏软件搞了个bmp文件,对比后才发现我的长度比windows少1536个字节, 我用FF填充,就一切正常了,oh, my god, 5天时间就这样白白浪费了

 

 技术图片

 

 技术图片

 

 

        

RGB保存 .bmp文件踩坑记

标签:操作   src   技术   长度   info   打不开   必须   mp4   搜索   

原文地址:https://www.cnblogs.com/vivid-zhang/p/13235904.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!