小鹿有什么坏心思 2024-04-08 10:37 采纳率: 57.1%
浏览 122
已结题

QT6.6使用QImage或者QPixmap无法打开载入大分辨率的图片

代码如下

void mainWindow::on_actionOpenFile_triggered() {
    source_file_name = QFileDialog::getOpenFileName(this, tr("Open File"), "",
                                            tr("Image Files(*.jpg *.png *.bmp *.jpeg *.gif))"));
    if (!source_file_name.isEmpty()) {
        QImage image(source_file_name);
        if (image.isNull()) {
                qDebug() << "QImage Failed to load image: " << source_file_name;
            return;
        }
        QPixmap pixmap(QPixmap::fromImage(image));
        if (!pixmap.isNull()) {
            left->clear();
            left->addPixmap(pixmap);
            GraphicLeft->setScene(left);
            setWindowTitle(source_file_name);
        } else {
            qDebug() << "QPixmap Failed to load image: " << source_file_name;
        }
    }
}
//部分定义如下
    QGraphicsScene *left;
    QGraphicsScene *right;
    QString source_file_name;
    QString target_file_name;
//其中GraphicLeft是QGraphicsView

图片样例如下

img


小的图片也就是磁盘可以正常打开,但是那张大的无法打开

img


图片的区别处理分辨率以外就是png多了透明通道,但是不知道为什么会产生这样的问题,希望有能者能够回答。万分感谢!

img

  • 写回答

6条回答 默认 最新

  • mideum 2024-04-09 17:08
    关注

    1000的尺寸算不上大像素,jpg打不开可能是图片格式插件没有载入,因为png是不需要载入插件的
    不知道你的运行条件,你是在qtcreator里运行的还是怎么样

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

问题事件

  • 系统已结题 4月22日
  • 已采纳回答 4月14日
  • 创建了问题 4月8日