码迷,mamicode.com
首页 > 其他好文 > 详细

图片数据随笔

时间:2017-09-30 21:00:34      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:bsp   str   googl   图像   坐标系   int   顺序   大小   else   

google下位图数据

CImage:
GetBits()返回的是图像数据buffer指针,如果是8位灰度图,每一字节(byte)是一个像素灰度级(调色板索引);如果是24位彩色,每三字节是一个像素RGB(存储顺序是BGR),另外注意位图数据从下到上存放,每行是按4字节的倍数分配空间。

指针指向的是 一维数组(c++只有一维数组,多维的存储也是一维)
定位需要你知道图像的信息才行:
比如标准24位真彩色bmp文件,位图数据存储在一维数组lpBits[]中,图像大小height*width
你要定位(x,y):
1 此坐标应为以图像左下角为原点的坐标系,如果不是则需要坐标变换下(位图数据从下到上存储)
确定每行的存储宽度(位图每行按4字节的倍数存储)
if(width*3%4 == 0) savewidth = width*3;
else savewidth = ((int)(width*3/4)+1)*4;
3 lpBits[y*savewidth+x*3]即为(x,y)像素RGB数据,注意是按照BGR顺序存储的,因此
b = lpBits[y*savewidth+x*3];
g = lpBits[y*savewidth+x*3+1];
r = lpBits[y*savewidth+x*3+2];

 

图片数据随笔

标签:bsp   str   googl   图像   坐标系   int   顺序   大小   else   

原文地址:http://www.cnblogs.com/wxl845235800/p/7615857.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!