
对于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信息等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)