qt中QPixmap如何保持等比例缩放
时间: 2023-12-24 16:50:30 浏览: 284
利用QPixmap实现图片缩放、平移等操作.zip
5星 · 资源好评率100%
在Qt中,可以使用QPixmap类的scaled函数实现等比例缩放。该函数有多个重载,其中一个参数是Qt::AspectRatioMode类型的参数,可以指定缩放时保持宽高比的方式。
以下是一个示例代码:
```cpp
QPixmap originalPixmap(":/images/image.png");
// 按照宽度缩放
int width = 300;
QPixmap scaledPixmap = originalPixmap.scaledToWidth(width, Qt::SmoothTransformation);
// 按照高度缩放
int height = 200;
scaledPixmap = originalPixmap.scaledToHeight(height, Qt::SmoothTransformation);
// 按照宽度和高度缩放,并保持宽高比
int maxSideLength = 400;
scaledPixmap = originalPixmap.scaled(maxSideLength, maxSideLength, Qt::KeepAspectRatio, Qt::SmoothTransformation);
```
其中,Qt::KeepAspectRatio表示保持宽高比,Qt::SmoothTransformation表示使用平滑的缩放算法,可以获得更好的缩放效果。
阅读全文