我有一个非常大的图像(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);
}
}
}
我做错了什么?每次我必须创建一个新读者是否合理?我正在尝试访问的磁贴的位置是否会影响速度和性能?如果您对更好的做法有任何建议,我将不胜感激