从Qt中的每个像素读取Alpha通道

时间:2015-08-05 15:10:25

标签: c++ qt

如何从图像中读取QT中的RGBA值?

我希望有人可以帮助我。

3 个答案:

答案 0 :(得分:1)

在Qt5中有 QImage::pixel(int x, int y) 方法。您可以通过qBlueqRedqGreenqAlpha函数访问返回值的RGBA值。

答案 1 :(得分:1)

您可以转换为格式RGBA using convertToFormat,如下所示:

lights.position[index]; // no
lights.position[0]; // yes, etc

现在,您可以按顺序获得R,G,B,A值,并进行正确的数据对齐,如下所示:

    QImage myImage( ":/Images/images.jpg" );
    myImage = myImage.convertToFormat(QImage::Format_RGBA8888);

这将在每第4个周期后给出每个像素的R,G,B,A。

答案 2 :(得分:-1)

假设已初始化QImage mImage

for( int y = 0; y < height; y++ ) {
    QRgb *lineOut = (QRgb *)mImage.scanLine(y);
    for( int x = 0; x < width; x++ ) {
        int r = 255, g = 0, b = 255;
        lineOut[x] = qRgb(r, g, b);
    }
}