博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Bitmap 图片格式并用 C++ 读写 Bitmap
阅读量:7271 次
发布时间:2019-06-29

本文共 1413 字,大约阅读时间需要 4 分钟。

转自

1、Bitmap 图片格式

 

  每部分的具体内容就不展开了。要说的有两点:

  (1)调色板不是必须的,可有可无,有没有调色板可以通过位图文件头的 bfOffBits 是否等于位图文件头加上位图信息头的长度来判断。调色板这个问题也曾经导致我在用 C++ 读取 BMP 的时候出错,原因就是并不是每个图片都没有调色板的,我读取的开始位置错了。

  (2)windows 的 BMP 是从最后一行开始读的!这个问题曾经导致我在用 C++ 做图像的旋转时方向错误。

2、C++ 读取 Bitmap 图片

 

#include 
#include
#include
typedef struct { BYTE b; BYTE g; BYTE r; }RGB; void imgOpr(RGB &a,RGB &b) { b.b=a.b; b.g=a.g; b.r=a.r; } int main() { BITMAPFILEHEADER fileHeader; BITMAPINFOHEADER infoHeader; FILE* pfin =fopen("D:/1.bmp","rb"); FILE* pfout = fopen( "D:/2.bmp" , "wb"); //Read the Bitmap file header; fread(&fileHeader,sizeof(BITMAPFILEHEADER),1,pfin); //Read the Bitmap info header; fread(&infoHeader,sizeof(BITMAPINFOHEADER),1,pfin); //为简化代码,只处理24位彩色 int height,weight; height=0; weight=0; height=infoHeader.biHeight; weight=infoHeader.biWidth; if( infoHeader.biBitCount >= 1) { int size = height * weight; RGB img[height][weight]; RGB img2[weight][height]; fread( img , sizeof(RGB) , size , pfin ); //对图片进行操作 int i, j; for (i=0; i

 

转载地址:http://jlncm.baihongyu.com/

你可能感兴趣的文章
php读取excel类——PHP-ExcelReader
查看>>
内存监控工具
查看>>
linux 下查看一个进程运行路径
查看>>
CSS 优先级
查看>>
ElasticSearch 集群状态图形化界面:cerebro
查看>>
Spark内存管理模型
查看>>
shell脚本基础
查看>>
shell 脚本总结
查看>>
将非工程下的图片显示到前端jsp的方法
查看>>
jQuery 常用工具函数
查看>>
分布式系统事务一致性解决方案
查看>>
Oracle错误1406,提取的列值被截断
查看>>
一步步将vim改造成C/C++开发环境(IDE)
查看>>
Git工作原理
查看>>
转载: 通过了解MySpace的六次重构经历,来认识分布式系统到底该如何创建
查看>>
scheme的let和let*
查看>>
tomcat配置https协议详细步骤
查看>>
回到顶部按钮
查看>>
请求url后通过(http请求)返回文件
查看>>
数据库数据安全的九个最佳实践
查看>>