Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ QLabel中缩放的pixmap看起来很糟糕_C++_Image_Qt_Qt5_Qlabel - Fatal编程技术网

C++ QLabel中缩放的pixmap看起来很糟糕

C++ QLabel中缩放的pixmap看起来很糟糕,c++,image,qt,qt5,qlabel,C++,Image,Qt,Qt5,Qlabel,因此,我尝试在Qt中加载一个raw图像文件,它与QtRaw/libraw一起工作得非常好。我得到的是一个QLabel中显示的QImage,如下所示: QImageReader reader("/Users/dublin/Pictures/Ich/IMG_5098.CR2"); QImage raw = reader.read(); displayLbl->setPixmap(QPixmap::fromImage(raw).scaled(1024, 768, Qt:

因此,我尝试在Qt中加载一个raw图像文件,它与QtRaw/libraw一起工作得非常好。我得到的是一个QLabel中显示的QImage,如下所示:

    QImageReader reader("/Users/dublin/Pictures/Ich/IMG_5098.CR2");
    QImage raw = reader.read();

    displayLbl->setPixmap(QPixmap::fromImage(raw).scaled(1024, 768, Qt::KeepAspectRatio, Qt::SmoothTransformation));
    layout->addWidget(displayLbl);
    displayLbl->show();
这里的问题是图像看起来“像素化”并且非常糟糕。这甚至不会发生在CR2/Raw文件中,如果我尝试使用JPEG的话。请看这里:

如果我们再放大一点:

如何以尽可能高的质量显示图像


非常感谢。

Qt scaller不打算这么做。Photoshop有!您应该使用ofline过程或获得正确的图像缩放源代码我想双线性过滤无法完成此工作。@Gold对我来说没有意义,因为即使我选择“适合窗口”之类的选项,Qt ImageViewer示例也可以工作。我只是想把它调整到标签的最大尺寸。在你可以简单地编辑/组织它之前,它有点像预览图像。为了防止在缩放和调整大小(数学重采样)时出现锯齿状边缘,我个人使用了15遍2D浮点算法,就像我为视频游戏编辑纹理一样。我不记得它的名字,但有十几个。这项任务确实没有人们想象的那么明显,但这就是方法;-)@黄金我明白,但我认为这将是一个有点过分为我的小应用程序。我将尝试通过一个将被修复的滚动区域来实现这一点。Phototonic()在预览图像中使用了类似的方法。它的工作原理和我预期的一样。谢谢你清理了一切。@Gold这么说吧: