1

版权声明:本文系作者原创。未经许可,不得转载。

    
    在使用QImage 载入图片时,如果连续读取一些大图片,可能会因为RAM的限制而导致读取失败。可以使用QImageReader将大图片裁剪成小图片来避免此种情况。以下是使用QImageReader裁剪图片的例子:

#include <QSize>
#include <QImage>
#include <QImageReader>
#include <QScreen>
#include <QtCore>
#include <QtGui>

void ImageEditHandler::adjustImage(QString sourceUrl, QString targetPath)
{
    QScreen *screen = QGuiApplication::primaryScreen();
    QSize screen_size = screen->size();
    qDebug()<<"屏幕尺寸:"<<screen_size;
    QUrl fileUrl(sourceUrl);
    QImageReader reader;                                     // 设置图片名
    reader.setFileName(fileUrl.toLocalFile());              // 读取图片大小
    QSize imageSize = reader.size();                     // 缩放图片尺寸以适应屏幕大小
    imageSize.scale(screen_size, Qt::KeepAspectRatio); // 设置图片大小
    reader.setScaledSize(imageSize);
    QImage image = reader.read(); // 读取图片
    image.save(targetPath);
}

lansheng228
256 声望4 粉丝