问题标签 [qpixmap]

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 投票
3 回答
19572 浏览

qt - QPixmap 和 SVG

您建议如何使用 QPixmap 处理 svg?

QPixmap(":/myfile.svg");然后调用的构造scaled()不起作用。QPixmap 被像素化。

谢谢。

0 投票
0 回答
3575 浏览

qt - QImage 和 QPixmap 图像显示不正确

我在 Ubuntu 上使用 QT 运行 OpenCV,并且在使用 QLabel 显示图像时遇到了问题。如果我使用代码:(其中“图像”是由 dcraw 创建的 Mat):

图像以彩色输出,完全符合我的预期。

但是,当我将 QImage 分配替换为使用“img_display”而不是 .jpg 文件时,我的图像显示从原点的右侧开始,并且有一个三角形覆盖了显示图像的右下角。这个三角形看起来像是图像 LHS 中缺失位的一半。我尝试使用的分配代码是:

图像来自原始 18.2mb cr2 文件,由 dcraw 创建。test.jpg 是 3.1mb

对于任何反馈,我们都表示感谢。

0 投票
5 回答
39016 浏览

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

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

0 投票
1 回答
232 浏览

qt - 将 QPixmap 与在其上绘制的数据连接起来

我正在寻找一种方法来连接 QPixmap 和正在写入的数据,以便最终我可以准确记录屏幕上当前的内容。

这是来自 qpainter.cpp 的示例函数(在 Qt SDK 中的 ./src/gui/painting 中找到)我想要得到的是矩形正在写入的像素图(在 device()-> 的情况下) devType() 是一个像素图)。所以我有这个检查:

我尝试找到 Qpixmap 的内存地址,并根据正在写入屏幕的 QPixmap 的内存地址检查它。

但是地址都不同。我也尝试过使用缓存键,但我遇到了同样的问题。

这是一个示例控制台输出:

那么我要问的是,在写入矩形的像素图和稍后打印到屏幕上的像素图之间是否存在链接?如果没有调用 Pixmap,我可以安全地假设屏幕上没有显示矩形吗?

如果有什么不清楚的问题,请告诉我,我会尽力澄清。

谢谢你。

0 投票
2 回答
17874 浏览

qt - 如何创建 QWidget 的屏幕截图?

我在 Qt Creator 中做作业,在那里我绘制到 QWidget,我需要保存这个 QWdiget 的一部分。

我试图解决这个问题:

谢谢你的帮助。

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 回答
2059 浏览

c++ - 快速 QPixmap 缩放

我开发了一个类似浏览器的应用程序,其中画布具有很大的高度和“普通”宽度,例如 1024x999999。我使用 512 个缓存的QPixmap块 (1024x128) 显示图片,重新使用它们来显示新的绘图区域。因此,如果用户在大图像的某个给定区域滚动,CPU 不忙,则使用缓存块。所以,这就是我的引擎的工作原理。

想要实现缩放。不知道 - 平滑或离散(x2、x3、x4...)。性能问题:

  • 有没有任何有效的方法可以在不分配太多内存的情况下在paintEvent()中动态缩放QPixmap ?
  • 或者我应该考虑为不同的缩放因子缓存缩放图片的“缩放层”?但这使得平滑缩放变得不可能......
0 投票
2 回答
512 浏览

qt - 如何二进制到qpixmap

我发现很难将二进制转换为图片,我使用像素图。转换成二进制是正确的,但是当我显示使用这个程序时实际上不起作用。

这是我的代码:

IE

但当

所以当我使用像素图时,导致火焰不对应二进制数,因为数组[0]在大小不同时是不同的。有什么简单的代码适合我吗?

0 投票
1 回答
1522 浏览

c++ - 显示图像时在最小化/最大化期间保留纵横比?

我正在尝试使用 qt creator 实现一个可扩展的图像小部件,它将保留图像的纵横比。我发现的所有示例或帖子都建议扩展 QLabel 并重新实现 resizeEvent。这就是我所做的,它几乎可以工作,但有一些问题。

  1. 当主窗口第一次打开时,图像会稍微变大并扩大主窗口的大小(这不是太大的问题)。

  2. 当我最大化窗口时,所有图像都会放大,但是当我取消最大化窗口时,图像无法缩小。

我尝试更改 QLabel 子类(称为 ClickableImage)和包含 ClickableImage 布局的父小部件的 resizeEvents。这是一些相关的代码。

此外,我还阅读了以下资料,

Qt:调整包含 QPixmap 的 QLabel 的大小,同时保持其纵横比

https://docs.huihoo.com/qt/4.2/desktop-screenshot.html

谢谢。

0 投票
2 回答
3896 浏览

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

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

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

第一张图片.

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

第二张图片.

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

第三张图片

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

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

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

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