+ -
当前位置:首页 → 问答吧 → 关于bmp文件格式和二进制读写文件

关于bmp文件格式和二进制读写文件

时间:2011-12-19

来源:互联网

首先声明:我是一个C语言新手
同学给我一个BMP文件,不过他把bmp文件的长宽改动了,能打开但看不到里面的图形,怎样能把长宽改回来呢
应该是一个编程题,但我实在是不会啊
求帮助,最好能讲一下原理,或者我要学习什么
万分感谢~~

作者: YouDown   发布时间: 2011-12-19

求解啊~~100分啊~~~~来个人呗~~~

作者: YouDown   发布时间: 2011-12-19

用jpglib库或相关的图形库处理,或者用winAPI也可。

作者: mydo   发布时间: 2011-12-19

引用楼主 youdown 的回复:
首先声明:我是一个C语言新手
同学给我一个BMP文件,不过他把bmp文件的长宽改动了,能打开但看不到里面的图形,怎样能把长宽改回来呢
应该是一个编程题,但我实在是不会啊
求帮助,最好能讲一下原理,或者我要学习什么
万分感谢~~


bmp图片文件中,只是记录了每个像素点要显示的颜色,尺寸决定这些数据的显示位置,你可以以不同的尺寸来显示这个图片,直到效果接近真实尺寸。
bmp里的数据,也是一条数据,例如:

C/C++ code

unsigned char red = {
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
};
unsigned char green = {
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
};
unsigned char blue = {
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
};


这个表示的是全黑的图片,当rgb三种颜色都为0的时候,三种颜色混合起来就是黑色。
如果将它看成尺寸为1x25的图片,那么就是一条长25个像素点的黑色的线。
如果将它看成尺寸为5x5的图片,就会是一个黑色的正方形。

作者: liuchao35758600   发布时间: 2011-12-19

晕,BMP也分压缩和不压缩的,
按照一般不压缩的话,因为有4字节补齐的关系,长宽重新计算有点困难。
你可以先把信息头读出来看看长宽变成了多少,如果你知道原来的长宽就容易了,否则,需要你穷举了哦~

作者: gqjjqg   发布时间: 2011-12-19

http://download.csdn.net/detail/forget_bread/402343
BMP文件格式,先看看,再找个读取bmp的代码试试,就知道了...

作者: gqjjqg   发布时间: 2011-12-19

热门下载

更多