【问题标题】:how to get image file format from QPixmap?如何从 QPixmap 获取图像文件格式?
【发布时间】:2014-07-28 09:17:32
【问题描述】:

在我的程序中,用户选择并将图像加载到某个类中的QPixmap 中,在加载QPixmap 的一些工作之后,QPixmap 传递到另一个类中,我想在新类中保存传递的@987654324 @作为文件,但我不知道QPixmap格式是什么!

我们如何从QPixmap获取图像文件格式?

【问题讨论】:

  • 可以在图片加载到像素图时将格式保存为QString,并与像素图一起传递。
  • 既然你已经修改了像素图,你需要知道类型。您应该阅读 QPixmap。最终,您可以分享您的代码,以便我们知道您已经尝试过什么,并看看我们可以在哪里提供帮助。在内存中,像素图是格式中立的,因此您决定应该将其保存为哪种格式。

标签: qt qpixmap


【解决方案1】:

像素图在概念上是特定于系统的,本身没有格式,并且很可能会丢失您加载的图像中的数据。还要注意图像格式文件格式是两个不同的东西。

  • 要保留图像格式,您必须使用QImage 类。

  • 要保留文件格式,您必须明确使用QImageReader 来读取图像。文件格式可通过读者的format() 方法获得。需要和图片分开存放,以后保存图片时使用。

  • 最后,您可能希望保留文件名。

作为实现细节,使用默认的 Qt 光栅后端,QPixmapQImage 的薄包装。但是您的意图是图像,而不是像素图,因此您应该使用图像类。

【讨论】:

    【解决方案2】:
    QImage img = pixmap.toImage(); 
    img.save("/media/mmcblk0p1/xx.jpeg");
    

    【讨论】:

    • 您好,欢迎来到 stackoverflow,感谢您的回答。虽然这段代码可能会回答这个问题,但您是否可以考虑添加一些解释来说明您解决了什么问题,以及您是如何解决的?这将有助于未来的读者更好地理解您的答案并从中学习。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-20
    • 1970-01-01
    • 1970-01-01
    • 2018-04-25
    • 2018-12-11
    相关资源
    最近更新 更多