BMP格式中像素操作出现的问题
2009-12-16 10:11
176 查看
首先我本来是想向一张.bmp图片中插入一段文本文字,引发了三个问题:
一,文件读写,如果同时要进行文件读写的时候,过渡的时候要添加一些中间函数,如fflush(),rewind()等,不然将出现错误。
二,对.bmp图片的像素进行改写的时候,即使你始终使用同一种颜色(三个像素分量不相等的),如(255,0,0),但是这将可能引起一下两个问题:
1.每行的颜色可能都在三种颜色中更迭出现(当然,行的颜色是统一的).
2.如果简单的进行width*hight个像素的改写入,可能不能完全改写原来图片(小于)。
导致原因:实际的位图数据占用的字节数,其实也可以从以下的公式中计算出来:biSizeImage=biWidth'*biHeight要注意的是:上述公式中的biWidth'必须是4的整倍数(所以不是biWidth,而是biWidth',表示大于或等于biWidth的,离4最近的 整倍数。举个例子,如果biWidth=320,则biWidth'=320;如果biWidth=323,biWidth'=324)
一,文件读写,如果同时要进行文件读写的时候,过渡的时候要添加一些中间函数,如fflush(),rewind()等,不然将出现错误。
二,对.bmp图片的像素进行改写的时候,即使你始终使用同一种颜色(三个像素分量不相等的),如(255,0,0),但是这将可能引起一下两个问题:
1.每行的颜色可能都在三种颜色中更迭出现(当然,行的颜色是统一的).
2.如果简单的进行width*hight个像素的改写入,可能不能完全改写原来图片(小于)。
导致原因:实际的位图数据占用的字节数,其实也可以从以下的公式中计算出来:biSizeImage=biWidth'*biHeight要注意的是:上述公式中的biWidth'必须是4的整倍数(所以不是biWidth,而是biWidth',表示大于或等于biWidth的,离4最近的 整倍数。举个例子,如果biWidth=320,则biWidth'=320;如果biWidth=323,biWidth'=324)
相关文章推荐
- 访谈计算机操作管理协会(Afcom)首席执行官Jill Eckhaus:数据中心问题出现在何处?
- Oracle9i R2 Pro*c 因为patch升级导致编译出现程序非法操作的问题
- 图片下面出现空白像素的问题解决
- CorelDraw x6 启动的时候出现尝试重新启动计算机和应用程序.如果这些操作还是不能解决问题
- win7下,使用锐捷出现“未能找到网卡或系统还未完成网卡初始化操作"问题解决
- 如何解决ADO.NET访问Access数据库出现"操作必须使用一个可更新的查询"的问题
- java连接操作Oracle出现的问题及解决方法
- .NET2003安裝出现一直重启问题和SQL 2000安装出现“以前进行的程序安装创建了挂起的文件操作。运行程序之前,必须重新起动计算机。”~[解决方案]
- 使用adb操作android的sqlite出现的问题
- 操作数据库出现错误的查找问题方法
- Delphi中多线程用Synchronize实现VCL数据同步显示 解决在线程中操作控件出现问题
- 1:初学hadoop遇到各种错误,这里贴一下,方便以后脑补吧,报错如下: 主要是在window环境下面搞hadoop,而hadoop部署在linux操作系统上面;出现这个错误是权限的问题,操作had
- 操作Oracle数据库实现上传图片到Blob类型的字段出现的问题
- 解决鼠标操作代理事件在多个程序集中出现的问题
- linux下vim常用操作技巧和出现问题的解决方案
- c#操作IIS 添加SSL出现的问题
- Repast HPC Tutorial学习操作中出现的问题及解决办法(更新ing)
- Web前端:POI操作EXCEL出现的单元格格式丢失问题的解决方案
- struts2.1笔记06:struts2开发环境的搭建实际操作出现的问题
- 解决kali linux出现正在设定软件包 无法操作的问题