latelee / yuv2rgb

Convert yuv to rgb(yuv422p, yuv420p, etc), or vice versa.VS 2003 project(but written in pure C). see https://github.com/latelee/YUVPlayer.git
BSD 3-Clause "New" or "Revised" License
94 stars 52 forks source link

您好,test生成的bmp文件错误 #1

Closed pgr2015 closed 4 years ago

pgr2015 commented 5 years ago

您好,我将您的代码编译完成,跑测试代码将yuv文件转换成为bmp文件后,bmp文件错误无法打开。 我的环境为ubuntu 16.04 编译器为 g++ 5.4.0 麻烦您回复一下,谢谢

latelee commented 5 years ago

您好,我将您的代码编译完成,跑测试代码将yuv文件转换成为bmp文件后,bmp文件错误无法打开。 我的环境为ubuntu 16.04 编译器为 g++ 5.4.0 麻烦您回复一下,谢谢

当时我在windows自测通过。你有分析过bmp的内容吗?图片属性字段不正确,会无法打开文件。

pgr2015 commented 5 years ago

错误信息为,BMP image has unsupported header size。好像就是您说的图片属性字段不正确,请问该怎么修改呢?

Rani-Zz commented 4 years ago

ubuntu 18.04 gcc -I. main.cpp -o main 为什么还是会提示头文件中的函数未定义,-I.不是说明头文件目录是当前目录了吗

latelee commented 4 years ago

ubuntu 18.04 gcc -I. main.cpp -o main 为什么还是会提示头文件中的函数未定义,-I.不是说明头文件目录是当前目录了吗

cpp文件用g++来编译。另外,工程涉及到c、c++文件,要分别编译,最后再链接。可用Makefile来操作。

Rani-Zz commented 4 years ago

BMP image has unsupported header size

您好,这个问题我也遇到了,请问最后怎么解决的

Rani-Zz commented 4 years ago

ubuntu 18.04 gcc -I. main.cpp -o main 为什么还是会提示头文件中的函数未定义,-I.不是说明头文件目录是当前目录了吗

cpp文件用g++来编译。另外,工程涉及到c、c++文件,要分别编译,最后再链接。可用Makefile来操作。

我执行完了,但是出现了跟跟楼上同样的问题BMP image has unsupported header size

latelee commented 4 years ago

我没有在linux下测试过。抽空试试。

Rani-Zz commented 4 years ago

我没有在linux下测试过。抽空试试。

应该是bmp文件头信息结构体字节对齐的问题,但我还不知道到怎么改

latelee commented 4 years ago

我没有在linux下测试过。抽空试试。

应该是bmp文件头信息结构体字节对齐的问题,但我还不知道到怎么改

经查,是结构体大小的问题。在32位系统上程序无问题,但在64位上会出现问题。因为unsigned long在64位系统上8字节。当时测试没有充分(大约7年前写的了)。你可以自己修正,我也提交代码了。