问题标签 [qimage]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
39016 浏览

c++ - QImage 和 QPixmap 有什么区别?

我不明白 QImage 和 QPixmap 之间有什么区别,它们似乎提供了相同的功能。什么时候应该使用 QImage,什么时候应该使用 QPixmap?

0 投票
2 回答
1375 浏览

c++ - Qt 无法将 QPaintDevice 转换为 QImage

这听起来很傻,但我无法截取 QwebView 的屏幕截图。

错误消息是,

我所知道的是,QPaintDevice 是 QPaint 的基础。

0 投票
1 回答
4268 浏览

c++ - QGraphicsPixmapItem

QGraphicsPixmapItem 和 QGraphicsItem 一样,有一个方法 update(x0, y0, width, height),以便仅在 QGraphicsScene 上重绘一个像素图。调用它会在 QGraphicsItem 上安排一个 paint()(在 Qt 的事件循环中),并且在执行这个 paint() 之后,边界框 (x,y,width,height) 将被重绘到 QGraphcisScene。

不幸的是,没有办法用边界框来安排绘制事件,这意味着 QGraphicsPixmapItem::paint() 被迫重新绘制整个 QPixmap,因此在子类中重新实现这个 paint() 方法无法仅部分更新 QPixmap,因此对 QPixmap 进行小(本地)更新的速度令人无法接受。

这样的子类看起来像这样:

另一种选择是保留 QGraphicsPixmapItem 的“内部 QPixmap”,并将 QImage 部分绘制到它,如下所示:

鉴于我需要设置像素图来修复它,我假设它在初始化时没有设置,因此取消之前提到的行似乎是个好主意。不幸的是,drawImage() 调用随后会出现段错误:

QPaintDevice:无法销毁正在绘制的绘制设备

我想有一个“item.setPixmap(&pixmap);”的替代品,它不会重绘整个东西,但效果很好。任何输入都非常感谢:)

0 投票
1 回答
2845 浏览

qt - Qt 使用 QTransform 组合两个图像

我面临一个可能很容易解决的问题,但我没有做对:我有两个 QImage,一个固定大小的背景图像imgBg和第二个 QImage imgFg,应该使用仿射变换进行变换,然后在上绘制(和剪辑)背景图像。

仿射变换如下:

  • 围绕原点缩放图像(统一缩放)
  • 围绕原点旋转图像
  • 将前景图像平移到背景图像上的某个参考位置,使前景图像中心在参考位置上。

这是我到目前为止所做的:

只要我只更改参考位置,一切正常。使用缩放和/或旋转时,图像也会正确缩放和旋转,但未放置在正确的位置(前景的图像中心与参考点不匹配)。转换管道有问题吗?我犯错了吗?

0 投票
1 回答
633 浏览

c++ - Qt 无法在发布配置中加载任何图像

我正在尝试使用 QDir 和 QImage 构建一个项目。我注意到在调试配置中一切正常 - QDir 加载应用程序目录中的所有文件并将整个路径写入输出。我可以将图像加载到 QImage 对象,将其转换并保存。

将配置更改为发布输出是完全不同的行为。我看到 QDir 仍然能够读取和写入控制台屏幕的良好路径,但加载的图像始终为 NULL,因此根本没有加载。我也尝试通过 .load(filename), .load(filepath) 实现它,但它不起作用。我的图片格式是JPG。

为什么会这样?

0 投票
2 回答
4569 浏览

qt - QImage 崩溃程序上的 drawText()

我在 uint8_t 缓冲区中有一个图像,我正在尝试使用 QImage 作为包装器在图像上写入文本。我使用 drawLine() 没有问题,但 drawText() 使程序崩溃。下面的代码是 boost 线程的一部分,我想在每个图像迭代函数时将文本写入其中。Qt 中是否有我不知道的错误?

0 投票
2 回答
2022 浏览

qt - QIcon/QImage 内存泄漏?

我使用QIcon(Qt 4.8.1 和 MSVC 2008)面临一些内存泄漏。
这发生在简单的QAction(如菜单条目,甚至是由 Qt Designer 自动生成的条目)或容器项(如QTreeWidgetItem)中。
例如:

经过大量调试后,我发现QIcon内部使用了QImage,它似乎已被正确销毁(参考计数器降至零)。
我可以产生的最简单的例子如下:

我错过了什么吗?
这是一个非常烦人的问题,因为它阻止了正确的内存泄漏跟踪(即由应用程序引起,而不是 Qt)。

编辑:这是内存泄漏报告

0 投票
1 回答
565 浏览

qt - Qt:QGraphicObject 和 QImage

我有一个QGraphicsObject包含 aQImage和 ovveride的派生类

在痛苦中我成功地画了QImage。是的QGraphicsObject一个项目QGraphicsScene,后者在 a 内QGraphicsViewQImage尺寸超过QGraphicsScene尺寸。我的目的是为了drag显示QImage(或QGraphicsObject)的超出部分QImage。我怎样才能做到这一点?有translate画布QImage吗?

可以给我一些文档或示例吗?

谢谢

0 投票
2 回答
3896 浏览

c++ - 在 Qt 中混合两个不同的图像

我的程序生成 3 个不同的图像,我想使用一些不透明度设置将它们组合起来。

首先我有原始图像,我已经将其转换为 QPixmap 以在 QGraphicsView 中显示它。

第一张图片.

然后用这个图像进行一些计算并生成一个 QImage,因为我需要基本的像素访问,我还添加了一个图例。

第二张图片.

我想做的是能够混合两个图像,同时能够修改不透明度。我没有展示示例的工具,它应该如下所示:

第三张图片

但是与第一个图像和数据图像混合不透明度。我也希望这个传说保持 100% 可见。如果需要,我可以为图例创建不同的 QImage。

我也确切地知道哪个像素应该被认为是透明的而不是白色的。

将来我想只用一个滑块来调整不透明度,所以我认为如果有一个不涉及每次都计算一个全新图像的解决方案会更好......

任何线索将不胜感激......

0 投票
6 回答
7961 浏览

linux - Qimage 到 cv::Mat 转换的奇怪行为

我正在尝试创建一个应用程序,我试图在其中集成 opencv 和 qt。

我使用以下代码成功地将 cv::Mat 转换为 QImage:

但是,当我尝试使用以下代码将 QImage 转换为 cv::Mat 时:

我没有成功,结果是完全混乱的形象。在我搜索的网络中,我看到人们正在使用这种方式,而没有提及任何具体问题。有人对可能导致问题的原因有任何想法吗?提前致谢。

西奥多

PS我在带有gnome-3.4的Arch Linux系统下使用opencv 2.4和Qt 4.8