我想从QImage中的每个像素提取RGB。理想情况下,我想使用img.bits()函数。
QImage img;
if( img.load("Red.jpg") )
{
uchar *bits = img.bits();
for (int i = 0; i < 12; i++)
{
std::cout << (int) bits[i] << std::endl;
}
}
如何操作返回的位?我期望看到全红,因为这张图片是在Paint中创建的纯红色图像。然而,我得到了36、27、237、255、36等不同的值...
bits()
读取图像数据与图像格式息息相关。尝试将图像格式转换为更适合您场景的格式,例如img = img.convert(QImage::Format_ARGB32)
。然后,如果我没记错的话,字节应该是0, 255, 0, 0, [loop]
。 - Stefan Majewsky