问题标签 [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 投票
3 回答
15226 浏览

qt - QGraphicsView 滚动和图像缩放/裁剪

我想在我的 QGraphicsView 中有一个背景图像,它总是缩放(并在必要时裁剪)到视口的大小,没有滚动条,也没有使用键盘和鼠标滚动。下面的示例是我在视口中缩放和裁剪图像的操作,但我使用随机值进行从以太中拉出的裁剪。我想要一个合乎逻辑的解决方案?

我想知道一种将图像缩放和裁剪为 QGraphicsView 大小的方法,即使我调整 QGraphicsView 的大小也能正常工作。1.5 和 19 来自哪里?

编辑; 我也尝试使用 setBackgroundBrush,但即使使用缩放/裁剪的 QImage/QPixmap,我也会得到平铺背景。

编辑; 到目前为止,我的解决方案是重写 drawBackground() 以获得我想要的结果,但这仍然不能帮助我学习如何将图像大小调整为 qgraphicsview 的视口大小。任何进一步的答案将不胜感激。

0 投票
1 回答
2664 浏览

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 绘图方法的最佳方法是什么?

提前致谢,

0 投票
1 回答
3345 浏览

qt - QT 中非常大的 QImage 和内存映射文件

我想将 QImage 绑定到 MMF 文件以操作图像,而无需直接在磁盘上占用内存。不幸的是,我的代码在内存中创建了一个副本。

我的程序需要处理非常大的图像。

0 投票
2 回答
8068 浏览

qt - Qt - QImage 有没有一种方法可以将 Qimage 粘贴到另一个 Qimage 中?

我正在寻找一种方法来简单地将一些粘贴Qimage到更大的文件中,从一些给定(x,y)的 . 现在,我正在逐个像素地复制 all Qimage

0 投票
1 回答
8123 浏览

qt - 将图像转换为文本

我希望能够将图像作为文本保存在 xml 文件中,但我无法找到一种有效的方法!

到目前为止,我尝试过:

尽管它正在工作,但结果是一个巨大的文件!我尝试在其中添加一些 QCompress 但没有太大成功...实际上 QCompress 似乎没有压缩任何东西...

我想我做错了,但有人可以启发我的道路吗?

0 投票
3 回答
4100 浏览

c++ - QImage文件路径

我在任何地方的文档中都没有看到这个,所以它可能不存在,但以防万一:

我有一个接受 QImages 向量作为参数的函数。每个 QImage 在某个时候从磁盘加载并且没有被编辑 - 它只是从中读取。理想情况下,我想做的是遍历所有 QImage 并将它们的文件路径列表输出到 XML 文件。

不幸的是,我在文档中没有看到任何获取加载图像的原始文件路径的方法。所以我的问题是,是否有可能只给定一个 QImage,找出 QImage 最初是从哪个文件路径加载的?

类似于以下内容:

QString QImage::getOriginalFilepath();

我知道这可能是一个徒劳的问题,但我想它总是值得一试。

(顺便说一下,我使用的是 Qt 4.7。)

0 投票
2 回答
8871 浏览

qt - 从 unsigned char* 数据构造 QImage

我在将 Image 对象(使用 Point Grej FlyCapture2 SDK 捕获)传递给 QImage 对象时遇到了问题。我通过函数获得与图像数据相关联的指针:

然后通过以下方式加载数据:

两个 Image 对象的数据格式均为 8 位单色。BytesPerLine 参数应该等于图像的宽度(我已经通过将 FlyCapture2::Image 保存到 .bmp 然后将其加载到 QImage 来检查它)。

您认为问题是从 unsigned char* 转换为 uchar* 吗?你还有其他建议吗?逐像素复制图像太慢了。

编辑:我正在将 FlyCapture 捕获的图像转换为FlyCapture2::PIXEL_FORMAT_RGB8,其中:R = G = B = 8 位,在PGR::SnapShot()函数内。SnapShot() 返回unsigned char* 常量。这是我的 Qt 显示功能的一部分:

我也尝试将 Img 保存到文件中,但随后出现未处理的异常。我尝试了其他像素格式对(FlyCapture2::PIXEL_FORMAT_RGB- 24 bit RGB with QImage::RGB888 and FlyCapture2::PIXEL_FORMAT_RGBU32with QImage::RGB32

还值得一提的是,我正在使用的 QImage 构造函数没有设置 colorTable(检查 QImage 是否为灰度时出现异常)。我想我需要更多帮助。

0 投票
3 回答
15106 浏览

qt4 - 如何使 QImage 或 QPixmap 半透明 - 或者为什么 setAlphaChannel 已过时?

4.7 并且喜欢在 qgraphicsview 上叠加两个图像。顶部的图像应该是半透明的,以便可以看穿它。最初,两个图像都是完全不透明的。我希望有一些函数可以为每个像素设置一个全局 alpha 值,但似乎没有这样的函数。最接近它的是 QPixmap::setAlphaChannel(const QPixmap & alphaChannel),然而,它自 Qt-4.6 起就被标记为过时了。相反,该手册引用了 QPainter 的 CompositionModes,但我没有成功地将透明度添加到我想要的不透明图像中。谁能指出我的工作示例或分享一些代码?

编辑: 我几乎很抱歉有一个自己的答案,现在就在问这个问题几个小时后。从这篇文章中,我发现以下代码可以完成这项工作。我只是想知道这是否被认为比逐像素修改 alpha 值“更好”(通常转化为更快)。

0 投票
2 回答
651 浏览

qt - 如何在 QWebKit 中显示 QImage?

有没有办法在 QWebFrame 中显示 QImage (在内存中,而不是在文件系统上)而不将图像写入临时文件?

0 投票
1 回答
1060 浏览

c++ - 在 QTextEdit 中用另一张图片替换图片

假设 QTextEdit 中有文本和图像。假设您提取 QTextEdit 的 HTML 代码。现在如何在 HTML 代码中找到图像被实例化的位置 () 并替换为我作为 QImage 对象保留前图像的位置和大小的另一个图像。

换句话说,当第二张图片作为QImage存储在程序中时,需要在保留第一张图片的位置和大小的同时交换图片。

请考虑第一个图像可能根本不存在。无论是否存在类似file://path/to/image/image_name.png的图像,都可以人为地将 HTML 代码设置为 QTextEdit 。