怎么获取BMP图像每点RGB颜色值

怎么获取BMP图像每点RGB颜色值,第1张

对于HBITMAP位图是有办法的。

假设要处理的位图是HBITMAP hBitmap;

代码如下:

CBitmap m;

mFromHandle(hBitmap);

BITMAP bt;

GetObject(sizeof(bt),&bt);

unsigned char px=new unsigned char [btbmHeightbtbmbmWidthBytes];

mGetBitmapBits(btbmHeightbtbmbmWidthBytes,px);//读取位图数据

int PixelBytes=btbmBitsPixel/8;//每一个像素占字节数

int rgb_b;

for(y=0;y<btbmHeight;y++)

for(x=0;i<btbmWidth;x++)

{

rgg_b=ybtbmWidthBytes+xPixelBytes;

px[rgb_b+0]

px[rgb_b+1]

px[rgb_b+2]//以上三个值就分别是BGR三个色彩的值。

}

int rgbR;

int rgbG;

int rgbB;

int minx = 0;

int miny = 0;

try {

File file = new File("E:\\ddpng");

BufferedImage image = ImageIOread(file);

int width = imagegetWidth();//宽度

int height = imagegetHeight();//高度

for (int i = minx; i < width; i++) {

for (int j = miny; j < height; j++) {

int pixel = imagegetRGB(i, j); // 下面三行代码将一个数字转换为RGB数字

rgbR = (pixel & 0xff0000) >> 16;

rgbG = (pixel & 0xff00) >> 8;

rgbB = (pixel & 0xff);

Systemoutprintln("i=" + i + ",j=" + j + ":(" + rgbR + "," + rgbG + "," + rgbB + ")");

}

}

Systemoutprintln("宽度为:"+width+",高度为:"+height);

} catch (IOException e) {

Systemoutprintln("读取文件出错");

eprintStackTrace();

}

右击属性,选择摘要,点击详细属性,里面有位深度一项。RGB图位深度是24,灰度和索引图位深度是8,灰度是白灰黑表示的图,索引图有可能是彩色的,也是8位深。

属性是人类对于一个对象的抽象方面的刻画。一个具体事物,有许许多多的性质与关系,把一个事物的性质与关系,都叫作事物的属性。事物与属性是不可分的,事物都是有属性的事物,属性也都是事物的属性。

以上就是关于怎么获取BMP图像每点RGB颜色值全部的内容,包括:怎么获取BMP图像每点RGB颜色值、给定一幅图像,用java读取每个像素的RGB三个颜色值、如何查看图片的RGB信息等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9491434.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存