问题标签 [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.
c++ - 获取 QPixmap 哈希的最佳方法是什么?
我正在使用 Qt 4.5 开发一个图形应用程序并将图像放入 QPixmapCache,我想对此进行优化,以便如果用户插入已经在缓存中的图像,它将使用它。
现在每个图像都有一个唯一的 id,这有助于优化自己的绘画事件。但是我意识到,如果我可以计算图像的哈希值,我可以查找缓存以查看它是否已经存在并使用它(当然这对重复对象更有帮助)。
我的问题是,如果它的 QPixmap 很大,它的哈希计算会减慢速度还是有更快的方法?
python - 当使用 Pixmap 调用 PyQt 的 setPixmap() 时,“Python.exe”崩溃
我有一个使用套接字相互发送和接收图像的程序。服务器使用'image.tostring()'发送图像数据,客户端接收它并使用'Image.fromstring'将其转换回图像,然后使用'ImageQt.ImageQt(image)'转换为QImage,将其转换为使用 'QPixmap.fromimage(qimage)' 进入 QPixmap 然后使用 'lable.setPixmap(qpixmap)' 更新我的 QWidget 的 QLable 图像
小图像一切正常,但图像大于 200x200,python.exe 崩溃,控制台只显示“进程终止,退出代码为 -1073741819”,并没有告诉我问题出在哪里。
我已将问题隔离到“setPixmap()”(只要我注释掉,其他一切都有效),但我看不出问题出在哪里。
这只发生在客户端。服务器端使用从 Image 到 QImage 到 QPixmap 然后 setPixmap 的相同步骤,但这没有任何问题。
还尝试将其设为 QBitmap 并在位图上使用 setPixmap,这很有效(但它是黑白的,所以不能使用它)。诡异的!
任何帮助,将不胜感激!
c++ - 将 QPixmap 保存为 JPEG 失败(Qt 4.5)
我有以下代码。
所以,路径是这样的: - 弹出文件对话框 - 用户选择格式和文件 - 系统在 QPixmap 上绘制绘图 - 将 QPixmap 保存到文件中。
它适用于 PNG 和 BMP 没有问题,但对于 JPEG、jpg、JPG 等,它会失败。
我翻遍了 Qt 文档,但找不到任何细节。它应该可以工作。有任何想法吗?
我正在使用 Qt 商业版 4.5.1 for Windows。
我正在使用 dll,Qt 不在路径上。
我刚刚意识到我正在静态链接到其他库使用的经典第 3 方 jpeg.lib(独立 JPEG 组的 JPEG 软件)。
是否有可能因此而发生冲突或其他事情?
或者只是插件没有正确加载。
python - 将 blob 图像数据加载到 QPixmap
我正在使用 PyQt4 为前端 GUI 编写程序,该程序访问后端数据库(可以是 MySQL 或 SQLite)。我需要在数据库中存储一些图像数据,下面是我用来将图像文件(JPEG 格式)导入数据库中的 blob 数据字段的 Python 代码:
这部分工作正常。我的问题是关于如何从存储在 PyQt4 数据库中的图像数据创建 QPixmap 对象。我目前的方法包括以下步骤:
(1) 数据库中的 Hex str -- cPickle&StringIO --> PIL Image Object
(2) PIL Image Object --> 临时图像文件
(3) 临时图像文件--> QPixmap
这种方法也很好用。但如果我不必写/读临时图像文件会更好,这可能会减慢程序对用户交互的响应。我想我可以使用QPixmap::loadFromData()直接从存储在数据库中的 blob 数据加载,并希望这里有人可以向我展示如何使用此函数的示例。
TIA,
必应
qt - 如何解决 QPixmap::fromImage 内存泄漏?
我对 Qt 有疑问。
这是困扰我的代码的一部分:
因此,该方法showOnScreen
使用私有方法从(OpenCV 使用)QImageIplImageCvt
创建,然后用于创建以全屏显示图像。类继承。QImage
IplImage
QPixmap
FullScreenImage
QLabel
经过一段时间的延迟,全屏图片应该被隐藏,所以我使用QTimer
延迟一段时间后触发事件。事件处理程序是hideOnScreen
隐藏标签并应清除内存的方法。
问题如下:
每当我调用QPixmap::fromImage
时,它都会为像素图数据分配内存并将数据从QImage
内存缓冲区复制到QPixmap
内存缓冲区。隐藏标签后,QPixmap
数据仍然保持分配状态,更糟糕的是,在新QPixmap::fromImage
调用之后,为新图片分配了新的内存块,而旧数据并没有从内存中释放出来。这会导致内存泄漏(使用我的测试图片的每个方法调用大约 10 MB)。我该如何解决这个泄漏?
我什至尝试创建一个私有QPixmap
变量,存储由QPixmap::fromImage
它创建的像素图,然后尝试在hideOnScreen
方法中调用它的析构函数,但它没有帮助。
有没有一种非静态的方式来QPixmap
创建QImage
?或者更好的是,有没有办法QPixmap
直接从创建IplImage*
?
预先感谢您的回答。
c++ - 调用开始时QPainter失败
我正在尝试在 QsplashScreen 上绘制 PNG 文件。我试图通过QPainter
. 我想通过它做的原因QPainter
是因为我希望它平滑地最小化(直到它消失),当我只是修复它时,它看起来一点也不平滑。
我将 传递QSplashScreen
给QPainter
构造函数。当我以参数为参数调用 begin() 时,它在QPainter
assertQSplashScreen
上失败d->active
。当我提供时,它以同样的方式发生Qpixmap
。
我究竟做错了什么?我应该如何启动QPainter
'开始()?
qt - 如何将 QPixmap 对象保存到文件中?
我在读取和写入 QByteArray 数据到文件时遇到问题。
我的目标是将 QPixmap 数据保存到 QByteArray 中,并将 QByteArray 保存到文件中(能够从文件中读取此 QByteArray 并保存到 QPixmap 中)。我想使用 QPixmap 文档中的以下代码:
将缓冲区写入文件后,我希望能够检索 QByteArray 并使用 QPixmap::loadFromData() 函数将其加载回 QPixmap。
请让我知道是否需要进一步澄清(我也愿意接受替代方法,我只需要能够读取 QPixmap 并将其写入文件!:));
qt - QGraphicsView 滚动和图像缩放/裁剪
我想在我的 QGraphicsView 中有一个背景图像,它总是缩放(并在必要时裁剪)到视口的大小,没有滚动条,也没有使用键盘和鼠标滚动。下面的示例是我在视口中缩放和裁剪图像的操作,但我使用随机值进行从以太中拉出的裁剪。我想要一个合乎逻辑的解决方案?
我想知道一种将图像缩放和裁剪为 QGraphicsView 大小的方法,即使我调整 QGraphicsView 的大小也能正常工作。1.5 和 19 来自哪里?
编辑; 我也尝试使用 setBackgroundBrush,但即使使用缩放/裁剪的 QImage/QPixmap,我也会得到平铺背景。
编辑; 到目前为止,我的解决方案是重写 drawBackground() 以获得我想要的结果,但这仍然不能帮助我学习如何将图像大小调整为 qgraphicsview 的视口大小。任何进一步的答案将不胜感激。
qt - jamvm1.5+classpath-0.96+qt4.3 QPixmap:在GUI线程之外使用pixmaps是不安全的
我是 Qt 的新手,我不知道如何处理它。
multithreading - QT-QImage和多线程问题
大家好,
请参考图片:http: //i48.tinypic.com/316qb78.jpg
我们正在开发一个应用程序来从电子显微镜的 MRC 图像中提取细胞边缘。
MRC 文件格式存储体积像素数据(http://en.wikipedia.org/wiki/Voxel),我们只需使用 3D 字符数组(char***)从 MRC 文件加载和存储数据(灰度值)。
如图所示,有 3 个查看器分别显示 XY、YZ 和 ZX 平面。查看器顶部的滚动条用于沿轴更改图像切片。
这是用户更改滚动条位置时我们执行的步骤。
1)获取新的滚动条值。(这是选定的切片)
2)对于相关平面(YZ,XY或ZX),通过读取3D char数组(char***)为所选切片生成(char * slice;)数组
3) 创建一个新的 QImage* (Format_RGB888) 并通过读取 'slice' 设置像素值(使用 img->setPixel(x,y,c);)
4) 这个新的 QImage* 是在 paintEvent() 方法中绘制的。
我们将在一个单独的线程中执行“边缘检测”过程,因为它是一个密集的过程。在这个过程中,我们需要在 QImage* 之上绘制检测到的曲线(像素集)。(作为一个层)。这个意味着我们需要在 QT 线程之外调用 drawPoint() 方法。
这是在这种情况下使用 QImage 的最佳方法吗?
从另一个线程执行 QT 绘图方法的最佳方法是什么?
提前致谢,