压缩QImage或QPixmap

时间:2014-04-16 10:22:43

标签: qt qimage

我正在QT项目(5.1.1)工作。主窗口将大图像显示为QLabel对象,其中包含QPixmap(包含QImage)。我的问题很简单....有没有办法压缩图像?

更新

图像有多大? 宽度:1624像素。 高度:482 * 300像素= 144600像素(或多或少) 我们的想法是用100 Mbs或更少的内存来管理这个图像

你想要完成什么,是关于使用更少的内存?是的,我希望使用最少的必要内存,而不会损失很多质量......

图像来自哪里,是图纸还是照片?它是从网络摄像头中提取的,我们管理每个帧。

您想要无损或有损压缩吗?我认为这可能是我问题的关键。我正在搜索如何配置QImage中的压缩类型,但我没有找到它。我找到了配置图像format的参数,但它并没有改善使用记忆,而且它的质量也很差。我很想知道如何配置QImage的压缩。

最后,我想我的问题是:是否有某种方法来压缩QImage,而QLabel显示没有丢失质量?

P.D:我想实现某种类型的缓存并使用滚动条加载图像的新部分(滚动条在QLabel中自动创建)。 P.D2:我没有添加代码,因为我认为问题并不复杂......如果有人想要代码,我会添加它。 P.D3:在此处或http://programmers.stackexchange.com中发布此问题是否正确?

1 个答案:

答案 0 :(得分:2)

我担心你必须至少加载一次大图像来做任何事情。

您可以使用scaled()func获取原始图像的缩小版本,以便在QLabel中使用。

QImage QImage::scaled(const QSize & size, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio, Qt::TransformationMode transformMode = Qt::FastTransformation) const

Link to docs.