将图像划分为qt中的图块

时间:2017-08-10 10:08:17

标签: c++ image qt qimage

我有一个非常大的图像(31000X26000像素)。我需要从这个图像创建给定大小的图块并存储它们。我正在尝试使用Qt的QImagereader,但我注意到第二次在setClipRect之后,它无法从图像中读取。 到目前为止我的代码有效,但速度很慢(第一行需要7秒,第二行需要14秒,第三行需要等等......)

for (int i = 0; i < tilesPerRow; i++){

    for (int j = 0; j < tilesPerCol; j++){
        QImageReader reader(curImage);
        reader.setClipRect(QRect(j*(tileSize-OVERLAP),i*(tileSize-OVERLAP),tileSize,tileSize));
        QImage img = reader.read();
        if (img.isNull())
            qDebug() << reader.errorString();
        else{
            retImg.setTile(img,i,j);
        }
    }
}

我做错了什么?每次我必须创建一个新读者是否合理?我正在尝试访问的磁贴的位置是否会影响速度和性能?如果您对更好的做法有任何建议,我将不胜感激

0 个答案:

没有答案