C++ Qt:如何调整图像大小并保持其比例?
此Qt显示如何调整对话框中包含的图像的大小,以便在调整对话框大小时,图像相应地拉伸 如何以相同的方式调整图像大小,而不使其变形/保持其比例不变 当然,如果对话框的宽高比与图像的宽高比不同,我将得到一个“灰色”区域。C++ Qt:如何调整图像大小并保持其比例?,c++,image,qt,image-resizing,C++,Image,Qt,Image Resizing,此Qt显示如何调整对话框中包含的图像的大小,以便在调整对话框大小时,图像相应地拉伸 如何以相同的方式调整图像大小,而不使其变形/保持其比例不变 当然,如果对话框的宽高比与图像的宽高比不同,我将得到一个“灰色”区域。 我找到了Qt::KeepAspectRatioenum,但找不到使用它的函数 更新:这是我正在尝试的代码: QImage image(path); QImage image2 = image.scaled(200, 200, Qt::KeepAspectRatio); QLabel
我找到了
Qt::KeepAspectRatio
enum,但找不到使用它的函数
更新:这是我正在尝试的代码:
QImage image(path);
QImage image2 = image.scaled(200, 200, Qt::KeepAspectRatio);
QLabel *plotImg = new QLabel;
plotImg->setScaledContents(true);
plotImg->setPixmap(QPixmap::fromImage(image2));
调整标签大小时,图像不会保持恒定的纵横比。重新缩放后分辨率会降低。使用该功能
QImage img("someimage.png");
QImage img2 = img.scaled(100, 100, Qt::KeepAspectRatio);
如果您在
QPixmap
中需要它,.我更新了我的问题,包括您的建议。QLabel
将不会调整显示的pixmap的大小,除非已设置。另外,您可能希望将最后一个参数传递到scaled
。scaledContents已经在我的代码中,我只是忘记在我的示例中复制它。现在我修好了。结果仍然是一样的。Qt::SmoothTransformation只是确定图像大小调整的质量/算法。它对宽高比没有影响。只是不要使用scaledContents
。您可以对窗口的大小做出反应,以使用新的缩放贴图重置像素贴图。