[Qt-interest] QImage.drawImage() on huge image doesn't work as expected. Bug?

Thorben Kröger thorbenk at gmx.net
Mon Mar 30 17:44:26 CEST 2009


Hi,

I'm drawing a small red image on a huge 40 megapixel black QImage. If I draw 
it on the top, it works as expected, if I draw it at a position of say 50000, 
it doesn't.

Here is a small testcase.
See try2.png, there's the red rectangle.
And in try3.png, no red rectangle at all.

Is this a bug?
Or am I just doing sth. wrong?

#include <QtGui>
#include <qdebug.h>

void superimpose(const QImage& background, const QImage& overlay, const 
QPoint& origin, QString filename) {
    QImage img = background;
    QPainter p(&img);
    p.drawImage(origin, overlay);
    img.save(filename);
}

int main(int argc, char** argv) {
    //Huge background image
    QImage bg(QSize(289, 141564), QImage::Format_RGB32);
    bg.fill(0);
    
    //Some small image
    QImage patch(QSize(287,7077), QImage::Format_RGB32);
    for(int i=0; i<287; i++) {
        for(int j=0; j<7077; j++) {
            patch.setPixel(i,j, qRgb(255,0,0));
        }
    }
    
    superimpose(bg, patch, QPoint(0,0),     "try1.png");
    superimpose(bg, patch, QPoint(0,1000),  "try2.png");
    superimpose(bg, patch, QPoint(0,50000), "try3.png");
    
	return 0;
}

Cheers,
Thorben



More information about the Qt-interest-old mailing list