使用 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 等效方法的主要内容,如果未能解决你的问题,请参考以下文章
Qt C++ 在 GUI 线程(Boost 线程)之外显示图像