• 大小: 31KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-03
  • 语言: 其他
  • 标签: QT  QImage  

资源简介

解决QT大图片加载失败问题:QImage加载大图片时,malloc返回NULL,导致图片加载失败。 用QT4.8,高版本改改头文件就可以了。

资源截图

代码片段和文件信息

#include 
#include 
#include “imageviewer.h“
#include “qbmploader.h“
#include “qimagescrollarea.h“
#include “QImageContent.h“

//! [0]
ImageViewer::ImageViewer()
{
    imageLabel = new QLabel;
    imageLabel->setBackgroundRole(QPalette::base);
    imageLabel->setSizePolicy(QSizePolicy::Ignored QSizePolicy::Ignored);
    imageLabel->setScaledContents(true);

    scrollArea = new QImageScrollArea;
    setCentralWidget(scrollArea);


    createActions();
    createMenus();

    setWindowtitle(tr(“Image Viewer“));
    resize(500 400);
}
//! [0]

//! [1]
void ImageViewer::open()
//! [1] //! [2]
{
    QString fileName = QFileDialog::getOpenFileName(this
                                    tr(“Open File“) QDir::currentPath());
    if (!fileName.isEmpty()) {
//        QImage image;//(fileName);
//        StoreBitmap::QBmpLoader loader;

        QImageContent*  content
                = qobject_cast(scrollArea->widget());
        if(content!=NULL){
            content->setImagePath(fileName);
        }

//        loader.read(&image);

//        if (image.isNull()) {
//            QMessageBox::information(this tr(“Image Viewer“)
//                                     tr(“Cannot load %1.“).arg(fileName));
//            return;
//        }

//! [2] //! [3]
 //       imageLabel->setPixmap(QPixmap::fromImage(image));

      //  content->resize(image.width()image.height());


//        HBITMAP hBmp = (HBITMAP)LoadImageA( NULL  fileName.toLocal8Bit().data()//L“z:\\bg4.bmp“
//                                            IMAGE_BITMAP
//                                            0  0
//                                           LR_CREATEDIBSECTION|LR_LOADFROMFILE);
//        DWORD error = GetLastError();
//        QPixmap pixmap = QPixmap::fromWinHBITMAP(hBmp);

//        imageLabel->setPixmap(pixmap);
//        Deleteobject(hBmp);


//! [3] //! [4]
        scaleFactor = 1.0;

        printAct->setEnabled(true);
        fitToWindowAct->setEnabled(true);
        updateActions();

//        if (!fitToWindowAct->isChecked())
//            imageLabel->adjustSize();
    }





}
//! [4]

//! [5]
void ImageViewer::print()
//! [5] //! [6]
{
    Q_ASSERT(imageLabel->pixmap());
#ifndef QT_NO_PRINTER
//! [6] //! [7]
    QPrintDialog dialog(&printer this);
//! [7] //! [8]
    if (dialog.exec()) {
        QPainter painter(&printer);
        QRect rect = painter.viewport();
        QSize size = imageLabel->pixmap()->size();
        size.scale(rect.size() Qt::KeepAspectRatio);
        painter.setViewport(rect.x() rect.y() size.width() size.height());
        painter.setWindow(imageLabel->pixmap()->rect());
        painter.drawPixmap(0 0 *imageLabel->pixmap());
    }
#endif
}
//! [8]

//! [9]
void ImageViewer::zoomIn()
//! [9] //! [10]
{
    scaleImage(1.25);
}

void ImageViewer::zoomOut()
{
    scaleImage(0.8);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-09-25 13:30  imageviewer\
     文件        6133  2018-09-25 11:27  imageviewer\Makefile
     文件       11589  2018-09-25 11:27  imageviewer\Makefile.Debug
     文件       11762  2018-09-25 11:27  imageviewer\Makefile.Release
     文件        1891  2017-12-21 15:27  imageviewer\QBmpLoader.h
     文件        8550  2018-03-01 09:38  imageviewer\imageviewer.cpp
     文件         235  2012-11-23 18:11  imageviewer\imageviewer.desktop
     文件        3169  2017-12-19 14:16  imageviewer\imageviewer.h
     文件        1059  2017-12-19 14:09  imageviewer\imageviewer.pro
     文件       14332  2018-06-20 14:58  imageviewer\imageviewer.pro.user
     文件       14432  2018-09-25 13:09  imageviewer\imageviewer.pro.user.2.5pre1
     文件        7549  2017-12-18 10:09  imageviewer\imageviewer2.cpp
     文件        1156  2017-12-18 10:09  imageviewer\imageviewer2.h
     文件        2347  2017-12-19 10:18  imageviewer\main.cpp
     文件         266  2018-09-25 11:27  imageviewer\object_script.imageviewer.Debug
     文件         286  2018-09-25 11:27  imageviewer\object_script.imageviewer.Release
     文件       49768  2018-04-12 20:28  imageviewer\qbmploader.cpp
     文件        3477  2018-04-12 20:26  imageviewer\qimagecontent.cpp
     文件         823  2018-04-11 16:44  imageviewer\qimagecontent.h
     文件        4113  2018-09-25 11:28  imageviewer\qimagescrollarea.cpp
     文件         868  2018-09-25 11:27  imageviewer\qimagescrollarea.h

评论

共有 条评论