QImage缩放后图片更清晰处理

QImage的缩放是比较常用的,今天碰到一个问题:

我发现缩放后的图片看起来很不清晰,于是看了一下QImage的scaled方法。发现它默认的是快速缩放,也就是增加scale的处理速度,牺牲的就是图片的质量。当我更需要图片质量的时候,就需要稍稍修改下scale的参数以实现更清楚的缩放。

一般缩放函数是这样的:

QImage image = picData.toImage();
QImage igScaled = image.scaled(316, 236);

增加图片质量的缩放是这样的:

QImage image = picData.toImage();
QImage igScaled = image.scaled(316, 236,Qt::IgnoreAspectRatio,Qt::SmoothTransformation);

 效果对比:

(快速缩放)  (清楚缩放)

以下是QImage的Scaled方法接口:

inline QImage scaled(int w, int h, Qt::AspectRatioMode aspectMode = Qt::IgnoreAspectRatio,

Qt::TransformationMode mode = Qt::FastTransformation) const

{ return scaled(QSize(w, h), aspectMode, mode); }

QImage scaled(const QSize &s, Qt::AspectRatioMode aspectMode = Qt::IgnoreAspectRatio,Qt::TransformationMode mode = Qt::FastTransformation) const;

看一下AspectRatioMode这个枚举:

enum AspectRatioMode {
IgnoreAspectRatio,
KeepAspectRatio,
KeepAspectRatioByExpanding
};

再看一下TransformationMode这个枚举:

enum TransformationMode {
FastTransformation,
SmoothTransformation
};

原文链接:https://blog.csdn.net/u014597198/article/details/75645271