qt中的图像压缩
我已经创建了一个qt项目,可以拍摄桌面的屏幕截图并对其进行压缩。就我拍摄的屏幕截图和缩放而言,原始屏幕截图的大小约为230kb,而缩放到60kb。我的问题是,我需要将保存的jpg缩小到5-10kb左右,而不会降低图像的清晰度。我已经搜索过了对于Qt中的库和加载项,但找不到任何可以给出可能结果的库和加载项 是否有任何算法、示例或压缩技术可以在不降低清晰度的情况下大幅减小大小? 操作系统:Ubuntu 14.04, qt-5.2.1 。以下是我迄今为止所做的代码:qt中的图像压缩,qt,image-compression,qpixmap,Qt,Image Compression,Qpixmap,我已经创建了一个qt项目,可以拍摄桌面的屏幕截图并对其进行压缩。就我拍摄的屏幕截图和缩放而言,原始屏幕截图的大小约为230kb,而缩放到60kb。我的问题是,我需要将保存的jpg缩小到5-10kb左右,而不会降低图像的清晰度。我已经搜索过了对于Qt中的库和加载项,但找不到任何可以给出可能结果的库和加载项 是否有任何算法、示例或压缩技术可以在不降低清晰度的情况下大幅减小大小? 操作系统:Ubuntu 14.04, qt-5.2.1 。以下是我迄今为止所做的代码: int widthToScale
int widthToScale= (QApplication::desktop()->screenGeometry().width()*60)/100;
int heightToScale=(QApplication::desktop()->screenGeometry().width()*60)/100;
QPixmap p=QPixmap::grabWindow(QApplication::desktop()->winId(),0,0,
QApplication::desktop()->screenGeometry().width(),
QApplication::desktop()->screenGeometry().height()).scaled(widthToScale,heightToScale,Qt::KeepAspectRatio,Qt::SmoothTransformation);
p.save(localpath,0,65);
你唯一能做的就是测试压缩级别。在某些情况下,格式也可能有所帮助。另一个想法是将颜色数从24/32位减少到16位甚至8位。非常感谢您的建议。我对qt是新手,在这种情况下,如何将颜色数从24/32位减少到16位甚至8位。使用
QPixmap:将QPixmap>转换为QImage
:toImage()
然后将QImage::convertToFormat
与适当的QImage::Format
一起使用QImage
还具有save
成员为QPixmap
。我已经厌倦了你建议的解决方案。即使我尝试了它,我也会将图像缩小为60kb,因为我使用了QImage::Format_RGB16,Qt::AutoColor进行格式转换。但是我需要转换为至少10kb。我不能再帮你了。您需要进行实验,在某些情况下,PNG可能会做得更好,但这取决于图像的细节。尽量降低质量。