在Qt中将jpeg图像转换为缩略图
Convert jpeg image to thumbnail image in Qt
A QImage
最终需要在 QLabel
中显示为缩略图。在这两者之间,它在 QByteArray
中序列化并通过网络发送。那么,我们可以将缩略图的 QImage
转换为 QByteArray
吗?基本上我想避免 QImage::scale()
方法,因为它非常 CPU 消耗。
就像 QImage
转换为 QByteArray
一样,它将保存缩略图的数据。
在这种情况下你无法避免QImage::scale。你为什么想要?
这是关于如何将 QImage 保存到 QByteArray 的问题的答案。
QFile file(imagePath);
if (file.open(QIODevice::ReadOnly)) {
QByteArray bytes;
QImage img;
img = img.fromData(file.readAll());
img = img.scaled(200, 100, Qt::IgnoreAspectRatio, Qt::FastTransformation);
SetLabelImage(img);
QBuffer buffer(&bytes);
img.save(&buffer, "PNG");
}
A QImage
最终需要在 QLabel
中显示为缩略图。在这两者之间,它在 QByteArray
中序列化并通过网络发送。那么,我们可以将缩略图的 QImage
转换为 QByteArray
吗?基本上我想避免 QImage::scale()
方法,因为它非常 CPU 消耗。
就像 QImage
转换为 QByteArray
一样,它将保存缩略图的数据。
在这种情况下你无法避免QImage::scale。你为什么想要? 这是关于如何将 QImage 保存到 QByteArray 的问题的答案。
QFile file(imagePath);
if (file.open(QIODevice::ReadOnly)) {
QByteArray bytes;
QImage img;
img = img.fromData(file.readAll());
img = img.scaled(200, 100, Qt::IgnoreAspectRatio, Qt::FastTransformation);
SetLabelImage(img);
QBuffer buffer(&bytes);
img.save(&buffer, "PNG");
}