gpt4 book ai didi

c++ - 减小 QPixmap 的文件大小

转载 作者:行者123 更新时间:2023-11-30 03:05:04 30 4
gpt4 key购买 nike

当我使用 scaledToHeight 调整 QPixmap 的大小,然后将其转换为 QByteArray 时,此 ByteArray 的大小恰好是未缩放 QPixmap 的 ByteArray 的大小。是否有可能缩小 QPixmap 的像素大小和文件大小?

最好的问候

最佳答案

这是一个概念验证,表明您正在做的事情当然是可行的。也许您可以看到自己所做的不同之处?

#include <QtGui>

int main(int argc, char **argv) {
QApplication app(argc, argv);

QPixmap pixmap("/path/to/image.jpg");
QByteArray bytes1;
QBuffer buffer1(&bytes1);
buffer1.open(QIODevice::WriteOnly);
pixmap.save(&buffer1, "png");
qDebug() << bytes1.size();

pixmap = pixmap.scaledToHeight(100);
QByteArray bytes2;
QBuffer buffer2(&bytes2);
buffer2.open(QIODevice::WriteOnly);
pixmap.save(&buffer2, "png");
qDebug() << bytes2.size();

return app.exec();
}

两个猜测:

  • scaledToHeight 返回原始图像的缩放拷贝。它不直接缩放像素图实例。
  • 如果您重复使用相同的QByteArray,您可能必须先截断它才能看到大小差异。也就是说,即使实际内容小得多,QByteArray 的容量也可能保持较大。

关于c++ - 减小 QPixmap 的文件大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8094440/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com