对于24位bmp图片,每一个像素点存放着此点的RGB值。首先定义一个结构体,包含红(red)、绿(green)、蓝(blue)这三个字段,如下:

[html] view plaincopy
  1. //像素颜色值
  2. typedef struct tagPOINT{
  3. BYTE b;
  4. BYTE g;
  5. BYTE r;
  6. } POINT;

接下来定义用来存放每一像素点RGB值的变量,为了与bmp图像的行、列对应,定义存放数据的变量如下:

[html] view plaincopy
  1. POINT **pix;

其中,pix[i][j]代表第i行j列处像素点的RGB值。

根据bmp图像宽与高,为指针变量动态分配内存空间,如下所示:

[html] view plaincopy
  1. //为标准图像每一个像素申请内存
  2. pix = (POINT **)malloc(sizeof(POINT*)*bi_in.biHeight);
  3. for(i=0;i<bi_in.biHeight;i++)
  4. *(pix+i)=(POINT*)malloc(sizeof(POINT)*bi_in.biWidth);

其中,bi_in.biHeight为图像高度,bi_in.biWidth为图像宽度。

读取图像每一像素点处的RGB值至pix变量中,如下:

[html] view plaincopy
  1. //读取图像数据
  2. for(i=0;i<bi_in.biHeight;i++)
  3. for(j=0;j<bi_in.biWidth;j++)
  4. fread(*(pix+i)+j,sizeof(POINT),1,fi);

现在,pix变量中就存放了整幅图像数据。可以通过下标或者指针运算读取任意点处的RGB值。

读取BMP图像每一像素点RGB数据相关推荐

  1. bmp 像素点 php,读取BMP图像每一像素点RGB数据 | 学步园

    对于24位bmp图片,每一个像素点存放着此点的RGB值.首先定义一个结构体,包含红(red).绿(green).蓝(blue)这三个字段,如下: //像素颜色值 typedef struct tagP ...

  2. C语言读取bmp图像并做简单显示

    C语言读取bmp图像并做简单显示) bmp文件格式 读取bmp文件信息并展示 bmp文件格式 bmp文件大体上分为四个部分: bmp文件构成 位图文件头BITMAPFILEHEADER 位图信息头BI ...

  3. C语言读取bmp图像

    BMP图像编码 BMP即bitmap,也就是位图,一般由4部分组成:文件头信息块.图像描述信息块.颜色表(在真彩色模式无颜色表)和图像数据区. 在图像数据之前,如图所示,共有54位数据 其中,0x42 ...

  4. java读取bmp图像_JAVA实现对BMP图片的读取

    BMP图片格式,是windows自带的一个图片格式,(*bmp),在windows的系统下都支持这种格式,bmp格式与设备无关的位图(DIB)格式,BMP简称位图,BMP的原始数据是没有经过压缩处理的 ...

  5. c语言bmp图像YUV转化成RGB,RGB与YUV图像格式的相互转换

    RGB与YUV图像格式的相互转换 (参考上的<RGB与YUV图像视频格式的相互转换>文章,做了些修改) RGB介绍:在记录计算机图像时,最常见的是采用RGB(红.绿,蓝)颜色分量来保存颜色 ...

  6. C# 读取bmp图像所有像素值

    将Bitmap数据转为byte[]数据,且每个数据代表像素值 Bitmap bmp = new Bitmap(Image.FromFile(path)); // 加载图像 private byte[] ...

  7. java bmp rgb_如何获取BMP图像每点RGB颜色值

    不用GetPixel函数,效率太低. 看了下BMP图原理,读取了BMP图数据,每一个像素位对应一个颜色索引号 如果这样,用这个索引找颜色,应该效率会高些.但不会实现方法. 还有就是不理解几个地方,其它 ...

  8. 图像识别 - C++读取bmp位图入门

    原文链接 =============================================================================================== ...

  9. HBITMAP与BITMAP 的区别 BMP图像的格式

    HBITMAP 是句柄: BITMAP 是实例: typedef struct tagBITMAP { /* bm */ int bmType;//必须是BM int bmWidth;//指定位图的宽 ...

最新文章

  1. 中兴SDH原理介绍及中兴E300网管介绍
  2. 15.文件系统——软RAID的实现(二)(mdadm,watch, RAID1)
  3. 产品成功之后的品牌策略
  4. Ubuntu:成功解决ubuntu使用su切换root出现Authentication failure用户时认证失败
  5. RtlAdjustPrivilege 一行代码提升进程权限
  6. 数十种TensorFlow实现案例汇集:代码+笔记
  7. Win7下搭建外网环境的SVN服务器
  8. 保存网络文章以供以后使用Instapaper阅读
  9. 用信号量解决进程的同步与互斥
  10. 2.数据湖DeltaLake之DDL操作
  11. mysql执行脚本的方法
  12. Web API 文档生成工具 apidoc
  13. python截图搜题_用python的OCR实现自动截图搜题
  14. flink的测试sql怎么测试呢,不能每次都使用jar测试吧,那么sqk-client就来了
  15. 环信的使用以及注意事项!
  16. YOLOv3使用笔记
  17. Android短信数据库相关
  18. spark入门案例以及sbt安装与打包(Linux环境)
  19. 安装sql错误:系统找不到指定路径
  20. linux-文件切割-splitcsplit

热门文章

  1. html制作十字架,使用重构的方式制作出一个红色十字架
  2. 使用GRE协议建立IPSEC
  3. Google浏览器设置暗黑模式、隐身模式
  4. ExtractFilePath()
  5. MySQL分组查询跟聚合函数
  6. Linux下搭建SVN服务器【亲测可用】
  7. 网络与新媒体专业有前途吗
  8. c语言fscanf读取double,c – 使用fscanf读取double
  9. 2020浙江计算机类录取分数线,2020年浙江高考普通类第一段录取分数线公布
  10. vue两个按钮切换_vue实现按钮切换图片