Sorry a typo qRgb(qRed(rgbVal), qRed(rgbVal), qRed(rgbVal)) for setting the pixel on the red channel

On 3/16/2018 4:25 PM, Nikolai Tasev wrote:
Yes that confirms my suspicions that setPixel for Format_Grayscale8 expect different things ( as I wrote in my previous email).
You need to pass qRgb(qRed(rgbVal), 0, 0) for red, not qRed(rgbVal).

On 3/16/2018 4:09 PM, Jason H wrote:
5.10.1

Yes, that's a good idea. So I wrote some code:

    QImage gray8 = color8(image, Qt::gray, QImage::Format_Grayscale8); // modded my function to take the format.
    QImage index = color8(image, Qt::gray, QImage::Format_Indexed8);

    int differences = 0;
    int same = 0;
    for (int y=0; y < gray8.height(); y++) {
        for (int x=0; x < gray8.width(); x++) {
            qDebug() << "gray" << gray8.pixel(x,y) << "index" << index.pixel(x,y);
            if (gray8.pixel(x,y) != index.pixel(x,y) )
                differences++;
            else
                same++;
        }
    }

    qDebug() << "differences" <<  differences;
    qDebug() << "same" <<  same;

With output:
differences 8048393
same 72951

It seems every pixel from "gray8" is 4278190080 == 0xFF000000.
So it seems that setPixel in my color8 function never sets the pixel.

I'm thinking this is a bug, unless someone has an idea?

_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to