使用 Qt 在 C++ 中查看图像的 BufferedImage + jPanel 等效方法

Posted

技术标签:

【中文标题】使用 Qt 在 C++ 中查看图像的 BufferedImage + jPanel 等效方法【英文标题】:BufferedImage + jPanel equivalent way to view an image in C++ using Qt 【发布时间】:2011-01-17 23:48:01 【问题描述】:

我有一个 Java 程序,它使用附加到 jPanel 的 BufferedImage 来显示我从字节数组中读取的一些图像数据。我一次将一行图像放入字节数组,获取图像的WriteableRaster,并调用光栅的setDataElements()方法,然后调用BufferedImage的setData来获取新数据。

在 C++ 中执行此操作的等效方法是什么?

编辑:我有 Qt,我想我可能会尝试使用它来构建我的 UI

【问题讨论】:

如果你想用 C++ 进行图像处理,请查看 OpenCV:opencv.willowgarage.com/wiki 【参考方案1】:

C++ 没有像 Java 那样在其标准库中内置任何 UI 框架。您需要选择一个,例如 GTK、QT 等等。

在您这样做之前,您的问题无法得到回答,因为它会因人而异。

【讨论】:

好评论 - 我补充说我有 Qt,我愿意使用它来构建我的 UI 并显示此图像【参考方案2】:

我认为QImage 在概念上最接近 BufferedImage。它有一个方法loadFromData(),可以从数组中加载图像数据。然后,您可以通过调用 QPixmap::fromImage() 将其转换为 QPixmap 并将其显示在 QLabel 或其他形式中。

【讨论】:

我已经能够将我的数据从 unsigned char** 获取到 QPixMap - 你能告诉我我应该如何访问标签吗?我称它为“viewLabel”,但在我的按钮 clicked() 插槽中,我无法访问 MainWidget::viewLabel 或任何能够调用 setPixMap 方法的东西

以上是关于使用 Qt 在 C++ 中查看图像的 BufferedImage + jPanel 等效方法的主要内容,如果未能解决你的问题,请参考以下文章

如何在纯c++环境中使用qt中的图像?

Qt C++ 在 GUI 线程(Boost 线程)之外显示图像

GraphicsScene 中的 Qt GLWidget 用于从图像数据(C++、Windows)中快速显示视频?

从 C++ 更改 QML 图像源

使用QT5绘制OpenCV3的Mat图像

使用QT5绘制OpenCV3的Mat图像