对于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. Java 原生日志 java.util.logging
  2. 裸眼3D全攻略3:拍摄3D—瞳距、镜距、视角偏转与空间感
  3. 2017.9.25 社交网络 思考记录
  4. “Replit 威胁我,要求我关闭我的开源项目!”
  5. 【Matlab土壤分类】多类SVM土壤分类【含GUI源码 1398期】
  6. DNF盗号木马之突破令牌密保
  7. 超声波传感器(CHx01) 学习笔记 Ⅲ - I2C读写操作
  8. rasa_nlu踩坑经历
  9. NanUI 无边框拖拽
  10. 实现动态基础架构 容易吗?
  11. C#判断线段是否相交
  12. 计算机知识产权查询,如何查询版权登记、计算机软件著作权登记?
  13. 洛谷P2240木材加工
  14. mysql多个嵌套查询
  15. LCD液晶驱动芯片VK1625/VK1626可通过指令进人省电模式,附带参考电路图
  16. 1000道软件测试面试题(附答案)百本电子书
  17. bal插口_麦克风的接口有哪几种?
  18. 带你了解并验证基金定投,附Python代码
  19. 《惢客创业日记》2018.10.12(周五) 声音主播背后的“天龙八步”(一)
  20. 使用Element的 InfiniteScroll 无限滚动组件报错

热门文章

  1. CD光盘音频cda文件拷贝翻录为wma文件
  2. HINTERNET句柄
  3. Python中的模块(Modules)
  4. C语言实现Json与结构体相互转换——cson
  5. 在控制台上跳英雄联盟
  6. 210:例子1:6个垃圾桶是否满的信息读取VSCODE实现
  7. multiprocessing.freeze_support()
  8. html5怎么把图片做成按钮,网页制作提交按钮 关于用图片做网页提交按钮的问题...
  9. Phpcms所有系统变量列表 Phpcms V9 文件目录结构
  10. 树莓派综合项目2:智能小车(二)tkinter图形界面控制