您的位置:

c语言填充bmp,c语言填充数组函数

本文目录一览:

C语言 bmp 图片处理填充问题问题

听你描述,我认为是数据格式问题。

为奇数时不可以,而同样方法用偶数时就可以,你可以看看奇数时你生成的文件的大小是不是比原文件多一个字节?(可以用小一点的图试)

可能就是你读数据和写数据都采用了双字节的格式。

解决方法我也不知道,但我觉得一般不应该出问题。

BMP头文件共54个字节,第35和36字节……是说头文件以后的总字节数的,这个要和实际的对应,如果不一样就无法绘图。这些字节是16位数,前面的第35字节为低位,后面位一次增高,例如:一个10X10的BMP图像,这里应该是2C 01=300=10X10X3个字节,文件总大小为354字节。但实际这个值可以比300大:比如:刚才的图形这里可以是40 01=320字节,其实后面的20个字节是没用的,实际文件大小为374字节,最后的20字节没用。你写的文件大小要和这个值对应起来,不然就无法绘图。

也就是说从第35个字节开始的16进制数值是图像的高度X宽度X3(实际图形中,这个数值可以高于图像的高度X宽度X3),但这个数值是对应头文件(54字节)后面的字节总数(必须对应),最后使得这个数值加上54等于文件大小,并且这个数值要大于等于图像的高度X宽度X3。

c语言如何创建BMP并填充

首先读bmp文件头,然后根据bmp宽度*bmp高度 把数据再读进来 不过我读进来数据都是做压缩的 还没有直接拷贝。 个人觉得如果只是拷贝,完全没有必要读这些信息 首先获得源文件占用字节大小,然后生成一个相同大小文件直接copy 不处理内部数据的话...

用C语言在一张BMP图片中加入另一张BMP图片

把图片的二维点阵数据分别读到2个二维数组里,

进行二维矩阵操作即可,最后把二维数组存成bmp文件即可