Qt加载图片数目超过八张就加载失败

Qt加载图片数目超过八张就加载失败

#采用QImage加载,代码如下

QStringList imgPaths=QFileDialog::getOpenFileNames(this,tr("请选择图片"),".",tr("图片文件(*.jpg *png)"));
#pragma omp parallel for
for (int i=0;i<imgPaths.count();i++) {
    QImage *img=new QImage;
    if(img->load(imgPaths[i])){}
}

选择的图片超过八张,在超过八张之后的img->load方法便会返回false,即使将从磁盘中读取图片部分分离到一个新的进程中加载依旧会有相同的问题
#采用QPixmap加载的结果相同
#采用QListWidget加载成缩略图

QStringList imgPaths=QFileDialog::getOpenFileNames(this,tr("请选择图片"),".",tr("图片文件(*.jpg *png)"));
for (int i=0;i<imgPaths.count();i++) {
	QPixmap map(fileUrls[i]);
    QListWidgetItem *lwItem=new QListWidgetItem(QIcon(map.scaled(m_width,m_height)),"zoom");
    lwItem->setText(imgPaths.at(i));
    lwItem->setSizeHint(QSize(m_width,m_height));
    m_qListWidget->insertItem(i,lwItem);
}

以上方法可以加载200张图片而不出现丢失,但是将QPixmap map(fileUrls[i])分离到额外的线程中进行加载依然只能加载八张,大于八张的图片均会提示读取失败

先留个坑,还正在做实验验证是不是八张图片的内存达到了一个类可以申请到的内存最大值

来了来了,自问自答环节来了在这里插入图片描述
红框里的MinGW 32bit就会出现只能加载8张,序号大于八的图片都会出现加载失败,如果换用 MSVC2015 64bit就可以解决这个问题了

猜你喜欢

转载自blog.csdn.net/weixin_39130561/article/details/107817925
今日推荐