Take a look on following code the Image is a class member of type QImage.
void ImageViewer::setImage(const QImage &newImage)
{
Image = newImage; // takes 108 milliseconds
imageLabel->setPixmap(QPixmap::fromImage(Image)); // takes 58 milliseconds
}
because I don't need to set newImage to Image class member anymore, I simply use reference of newImage and save time. But I was surprised.
void ImageViewer::setImage(const QImage &newImage)
{
imageLabel->setPixmap(QPixmap::fromImage(newImage)); // takes 158 milliseconds
}
It takes same time. What am I missing here?
EDIT For those who want to known how I measured times, I used QElapsedTimer suggested here
Image is everytime same the code is a part off custom scroll. Evrything you have to know is same image(.jpg) of size 2380x3368 is loaded every time we enter this function. The measured time are pretty much same every time those are in comments are avarage time.
But personally think that image format or size is not the question here the main question here. The main question should be why SetPixmap takes more time when I used ref to an existing QImage than creating a new QImage which is then sent to this function. It's not make any sense.