处理bmp灰度图,为什么调色板会自动改变??

huaxu242 huaxu242 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
用C编了个程序,读BMP8位灰度图,中值滤波后写出。噪声去的还可以。但是颜色却变成蓝绿色,如果读蓝绿色图再写出,颜色变成黄色,再次运行,变红色,最后终于又变回灰色。

我都没有动文件头和调色板,把1078个字节直接写入新文件的。怎么会这样呢?
而且编了个程序显示调色板信息。定义Palette[256][4],灰度图的调色板是正常的。但是别的图的调色板却在第10行出现问题。如下:

第九行:灰图,有色图都是9 9 9 0
但是第十行,灰图是10 10 10 0,蓝色图却变成13 10 13 10,然后是13 10 0 11,11 11 0 12,12 12 0 13。。。 就这样,颜色就错开了。。。别的图也是一样的道理。
因为灰度图我是用photoshop把彩色图加工得到的,防止是这方面原因,就只将54字节复制进新文件,调色板的数据自己写入。可是依然变蓝色,调色板也会紊乱,只是不是第10行开始,好像更靠前了。。。

而且我写出的图还会整体右偏2,3个像素。应该不是那个4像素偏移的问题,因为我的图是256*256的。所以怀疑也跟调色板错位有关


谁能帮忙解释这个怪异的东西。。。非常感谢阿~~~~~~~~~~~
...全文
评论 18
收藏 已收藏
分享
返回顶部
huaxu242
C语言 70,040 成员 243,237 内容