Qt QImage 到 QPixmap 转换丢失 UI 的颜色信息

2024-03-10

我正在尝试更新主 Qt UI 中 QLabel 上的 QPixmap。调用以下插槽来使用“newImage”变量 QImage 执行此操作(因为它来自不同的线程)。 QImage 使用 ConvertFromImage 转换为 someImage (我也尝试过 ::fromImage )。如果我只是将 QImage“newImage”保存到文件中,我会得到一个绿色矩形和红色文本,这是我之前用 OpenCV 绘制的,但是,如果我保存转换后的像素图或显示转换后的像素图,我会丢失矩形和文本的颜色在图像中,但保留框架本身的颜色。我在下面发布了 2 张图像来演示我传递此插槽的 QImage 与显示在 UI 中的像素图之间的区别。我不知道如何让像素图显示带有颜色的矩形和文本!我究竟做错了什么?谢谢!

void MainWindow::updateImage(QImage newImage, double timeElapsed) {

    QImage someImage = newImage.convertToFormat(QImage::Format_RGB888);

    // Get pixmap from data
    m_NewPixMap.convertFromImage(someImage,Qt::ColorOnly); // Tried various ones of these

    // Debug status
//    qDebug() << "Pixmap received by MainWindow and elapsed time is: " << timeElapsed << " ( Image size is: " << newImage.byteCount() << " )";
//    qDebug() << "Pixmap is null? " << m_NewPixMap.isNull();

    // Update the label
    float hz = 1000.0f / timeElapsed;
    QString status;
    status.sprintf("FrameRate (Hz) = %.02f (%.0f ms)", hz, timeElapsed);

    // Update status label
    m_StatusLabel->setText(status);

    // Update the main view
    m_Label->setPixmap(m_NewPixMap);
    repaint();

    //qDebug() << "Saving QImage now...";
    QFile file(QString("output_detected_images/detected_image_%1.png").arg(m_Counter));
    file.open(QIODevice::WriteOnly);
    bool savedSuccessfully = newImage.save(&file,"PNG"); // This gives proper color in image
    //bool savedSuccessfully =  m_NewPixMap.save(&file, "PNG"); // THIS GIVES A BLACK IMAGE
    qDebug() << "Done saving QPixmap... " << savedSuccessfully;

}

从问题中,我了解到矩形和文本是源图像的一部分?

我猜测问题可能与颜色的不同格式有关... ConvertToFormat 无法解决。

也许尝试确保在源图像中矩形和文本以与图像其余部分相同的 RGB32 格式保存?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt QImage 到 QPixmap 转换丢失 UI 的颜色信息 的相关文章

  • 如何使用 Qt Test 控制 QFileDialog?

    我有两个问题 我怎样才能访问QFileDialog并使用 Qt Test 模块在 文件名 字段中写入文件的路径 我这么问是因为我正在 Qt 中开发一些 GUI 测试 现在我需要打开一个文本文件 以下代码创建QFileDialog并获取文件路
  • Qt 信号槽,新符号中的转换类型[重复]

    这个问题在这里已经有答案了 鉴于以下两个 connect ui gt comboBox SIGNAL activated QString ps SLOT requestPlotsAvailable QString connect ui gt
  • 通过对 XmlHttpRequest (REST) 的响应在 QML 中显示图像

    我需要从 REST API 调用中获取 jpeg 图像 我使用 XMLHttpRequest 因为请求需要身份验证标头 即我不能只创建一个图像并将源设置为带有 user passwd url 的 URL 我认为我可以通过将 REST 数据设
  • 获取小部件的背景颜色 - 真的

    我无法获取小部件的实际背景颜色 在我的特殊情况下 我在使用 QTabWidget 中的小部件时遇到问题 这是在Windows7上 因此 经典的小部件有一些灰色背景 而选项卡内的小部件通常用白色背景绘制 I tried def bgcolor
  • 对齐坐标系

    Let s say I have 2 coordinate systems as it is shown in image attached 如何对齐这个坐标系 我知道我需要将第二个坐标系围绕 X 平移 180 度 然后将其平移到第一个坐标
  • [本机]:在Qt for Android中使用Java函数和第3方库[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 最近我用qt写了一个android应用程序 但我有一个很大的问题 我可以使用 调用一些原生的android API 比如调用特殊的activit
  • 为什么下面的重叠比较总是评估为 true

    我不明白为什么以下代码有警告 指出重叠比较始终评估为真 接下来的语句永远不会被执行 QVariant MainModel data const QModelIndex index int role const if index isVali
  • QGraphicsView 和 eventFilter

    这个问题已经困扰我两天多了 所以我想我应该问一下 我在Win7上使用Qt 4 5 3 用VC2008编译 我有 MyGraphicsView 继承 QGraphicsView 和 MyFilter 继承 QObject 类 当我将 MyFi
  • Qt程序部署到多平台,如何?

    我是 Qt 编程新手 我想开发一个程序 我想在 Windows Linux ubuntu 和 Mac 上运行 听说Qt支持多平台应用程序开发 但我的问题是 在我部署或编译后 任何 Qt 库都需要在 Ubuntu 中运行这个应用程序吗 如果您
  • QSpinBox 输入 NaN 作为有效值

    我正在尝试扩展 QSpinBox 以能够输入 NaN 或 nan 作为有效值 根据文档 我应该使用 textFromValue valueFromText 和 validate 函数来完成此操作 但我无法让它工作 因为它仍然不允许我输入除数
  • 当我尝试构建 Qt 4.7.1 静态库时,“找不到 -ljscore”

    我尝试从最新的源构建静态 Qt 库 但出现以下错误 usr bin ld cannot find ljscore collect2 ld returned 1 exit status 如何解决这个问题呢 这是 Qt 构建系统中自 4 7 0
  • Qt:将拖放委托给子级的最佳方式

    我在 QWidget 上使用拖放 我重新实现了 DragEnterEvent dragLeaveEvent dragMoveEvent 和 dropEvent 效果很好 在我的 QWidget 中 我有其他 QWidget 子级 我希望它们
  • GoQt 致命错误:QAbstractAnimation:没有这样的文件或目录

    我尝试编译 Qt 来开发桌面应用程序 我按照 Qt 网站上的官方 wiki 指南的说明进行操作 当我尝试go run示例文件夹中的示例 我收到错误 去运行 home pinkya rabbit workspace go1programs s
  • 禁用 QML Slider 的鼠标滚轮

    我希望能够滚动Flickable使用鼠标滚轮 或触摸板上的两根手指 不改变Sliders它可能包含 示例代码及结果应用 import QtQuick 2 7 import QtQuick Window 2 2 import QtQuick
  • 错误 LNK2001:无法解析的外部符号 __CxxFrameHandler3

    我正在将 Qt 从 VS 2013 迁移到 Qt 5 10 1 到 VS 2015 出现以下多个链接错误 error LNK2001 unresolved external symbol CxxFrameHandler3 error LNK
  • QGraphicsScene::clear 不会改变 sceneRect

    我有一个 QGraphicsScene 场景 和 QGraphicsView graphicsView 我有一个画图的方法 当我需要重绘所有图形时 我调用这个方法 一切都好 但我意识到 scene gt clear 不会改变 sceneRe
  • 向 Qt 样式表添加特异性时丢失样式

    这是我的代码 const QString STYLE SHEET background color rgba x x x y border 1px solid gray border radius 0px border top 1px so
  • 如何创建用于 QML 的通用对象模型?

    我想知道是否有任何宏或方法如何将 Qt 模型注册为 QObject 的属性 例如 我有AnimalModel http doc qt io qt 5 qtquick modelviewsdata cppmodels html qabstra
  • 与 Qt 项目的静态链接

    我有一个在 Visual Studio 2010 Professional 中构建的 Qt 项目 但是 当我运行它 在调试或发布模式下 时 它会要求一些 Qt dll 如果我提供 dll 并将它们放入 System32 中 它就可以工作 但
  • 如何在 QTabWidget Qt 中展开选项卡

    我有一个QTabWidget像这个 但我想展开选项卡以 填充 整个小部件宽度 如下所示 我怎样才能做到这一点 我在用Qt 5 3 2 and Qt 创建者 3 2 1 Update 我尝试使用setExpanding功能 ui gt myT

随机推荐

  • 应用程序启动后我可以收到 iOS 启动通知吗?

    我正在寻找一种在 iOS 上检索 UIApplicationLaunchOptionsLocalNotificationKey 的方法 该方法不涉及使用应用程序委托 即我不想实现以下内容 BOOL application UIApplica
  • 如何将自定义 CSS 与我的 Sharepoint WebPart 结合使用?

    ello 我正在为 Sharepoint 开发我的第一个 WebPart 现在我想知道在哪里 如何包含 存储我的 CSS 我应该将 css 文件放在哪里 我应该如何将它们包含在我的网络部件中 这是我的方法 protected overrid
  • 如何查找两个日期之间的持续时间

    我想找到两个日期列之间的持续时间 为此 我使用 DATEDIFF 函数分别查找年份和月份 但希望两个结果都在单列中 下面给出了两列 start dt end dt 06 Oct 2009 15 Jul 2011 需要的结果 Duration
  • 如何防止 WPF 使用 Windows 字体大小选项进行缩放?

    我不希望我的 WPF GUI 根据 Windows 字体大小选项 DPI 进行缩放 这不仅仅是在 UserControl 上指定固定字体大小的问题 因为缩放会影响 UserControl 中的图像和边框 我可以在 UserControl 上
  • 比较 Codeigniter 和 MySQL 中的两个日期

    如何在 Codeigniter 查询函数中获取两个日期之间的值 这是我的模型和示例代码 function get promo today date Y m d query this gt db gt query SELECT FROM tb
  • 如何提高 Perl 中 lock_keys 的使用?

    我在用着Hash Util s lock keys每当尝试访问哈希中不存在的键时就会死掉 有时我的哈希值很深 哈希值 哈希值的哈希值 有没有 一次性锁定它们的快速方法 是否可以控制 失败时的默认消息 即 添加未找到密钥的哈希转储 lock
  • 使用额外数据从 NFC 标签启动 Android 应用程序

    我只需将手机放在 NFC 标签上即可启动我的应用程序 但我想将这个想法更进一步 想象一个带有两个 NFC 标签的简单时间跟踪应用程序 第一个将启动 并下载 应用程序并注册启动时间 另一个也将启动 并下载 应用程序 但注册一个停止时间 我想解
  • 将符号链接添加到脚本到 rc.d 文件夹中以在系统启动期间启动进程[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我使用的是 Fedora 15 我正在尝试添加 MYSql 守护进程以在系统启动期间启动 我明白我必须将其添加到rc5 d因为它是默认目标并且是gra
  • 直接作为 SQL 查询查询 Sqlalchemy-utils EncrytedType

    我有一个 用户 表 其中电子邮件为加密类型 class AllUser db Model id db Column db Integer autoincrement True primary key True index True emai
  • 在rabbitmq autoconfig connectionfactory bean上设置heartbeat属性

    我应该如何在rabbitmq spring中的CachingConnectionFactory bean上设置heartbeat属性 这是在云铸造环境中 因此 应用程序将通过清单文件使用服务绑定 并且我没有代理主机名 在我的SimpleMe
  • X-UA 兼容的 http 标头实际上适用于 IE9 吗?

    我正在开发一个可以作为 Intranet 站点托管的 Web 产品 我正在尝试找到一种编程方法来防止 IE9 滑入 IE9 兼容性视图浏览器模式 即使 在兼容性视图中显示 Intranet 站点 可能已打开 我正在使用这个 html 页面进
  • 有没有办法将 kptr_restrict 设置为 0?

    我目前在运行 linux perf 时遇到问题 主要是因为 proc sys kernel kptr restrict当前设置为 1 但是 如果我尝试 proc sys kernel kptr restrict通过回显 0 来如下 echo
  • 处理尝试破解网站的最佳方法

    一点背景 我为一个非营利组织运营该网站 在发现死链接后 我在网站上运行了链接检查器 并发现了更多链接 因此 我实现了一个自定义 404 页面来记录所有失败的链接 这使我能够修复损坏的链接 并提醒链接到我们的其他人他们的链接已损坏 它很快就得
  • R 矩阵/data.frame索引选择真的很慢

    我正在选择 data frame 的子集g raw 像这样 g raw lt read table gfile sep header F row names 1 snps intersect row names na omit csnp r
  • 与 Julia 实时绘图

    我正在尝试绘制一个与 Julia 一起实时演化的函数 为此 当我尝试完全应用给定的示例时 我发现 GR 包可以在 Julia 中使用here https pgi jcns fz juelich de pub doc anim html im
  • 如果我需要自定义 getter/setter,我可以省略字段创建吗?

    我可以写出如此漂亮简单的代码 public int Delta get private set 现在我只想添加一个电话OnPropertyChanged Delta 这是我知道如何做到这一点的唯一方法 public int Delta ge
  • 并排绘制 gList

    我有 2 个 gList 对象 网格 当我这样做时 它们可以很好地绘制 grid draw plot1 grid draw plot2 但我希望这些在 pdf 中并排显示 就像是 pdf test pdf par mfrow c 1 2 p
  • 如何更改列表视图的文本大小

    我正在使用 List Activity 从 SQLITE 检索数据 但我无法设置列表视图的字体大小 请帮我 public class CartList extends ListActivity private ArrayList
  • PDF Box 由于其中包含 JBIG2 图像而生成空白图像

    首先让我向您介绍一下我的项目 我有一个 pdf 文件 需要将其转换为图像 一页一张图像 PDFBoxAPI 并将所有这些图像写入新的 pdf 中PDFBoxAPI 本身 基本上 将 pdf 转换为 pdf 我们称之为 PDF 转码 对于某些
  • Qt QImage 到 QPixmap 转换丢失 UI 的颜色信息

    我正在尝试更新主 Qt UI 中 QLabel 上的 QPixmap 调用以下插槽来使用 newImage 变量 QImage 执行此操作 因为它来自不同的线程 QImage 使用 ConvertFromImage 转换为 someImag