【问题标题】:Display partially loaded image by QImage通过 QImage 显示部分加载的图像
【发布时间】:2021-11-12 09:53:26
【问题描述】:

我正在使用 Qt 中的 QImage 类在屏幕上显示图片。出于某种原因,我甚至需要显示未完全加载的图像(例如,当某些数据块不存在时)。

我希望看到这样的结果:

Windows 的标准图像查看器可以向我显示此类损坏的图像,但我无法使用 QImage 实现相同的行为。如果损坏,图像根本不显示。有没有办法通过 QImage 显示部分加载的图像?也许我应该为此目的使用其他与 Qt 相关的类?

【问题讨论】:

  • 什么图片文件格式?
  • @Scheff'sCat PNG 特别是
  • 我曾经使用libpng 为我自己的图像类实现图像加载器。我没有加载损坏图像的经验。 (当它为未损坏的文件完成工作时,我完全满意。)但是,这可能会让您完全控制可以实现的目标。一旦您将图像加载到内存中,wrap it into a QImage(和teaser)就不那么难了。 ;-)
  • 谷歌搜索了一下,我发现了一些东西让我想起了QImageReader 的存在,它旨在提供对图像文件加载的更多控制。然而,这似乎是一个死胡同:如果在读取图像时发生任何错误,read() 将返回一个 null QImage。
  • @MohammadKanan 我假设 archive 是一个错字(或者是那个愚蠢的智能手机输入更正的结果)。我把它读作实现

标签: c++ image qt


【解决方案1】:

QImage 对于这个可能太高了。如果您不想在每种格式的单个库级别(例如 libpng),您应该考虑使用 CImg。它是一个仅用于读取和处理图像的小型标头 C++ 库,它使用可用于读取图像的低级库。从加载的 CImg 中,您应该能够将数据放入 QPixmap 或 QImage 以显示它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-14
    • 1970-01-01
    • 2015-03-22
    • 2019-08-09
    • 1970-01-01
    • 1970-01-01
    • 2013-07-27
    相关资源
    最近更新 更多