gpt4 book ai didi

c++ - 在内存中将 Iplimage 压缩为 jpeg

转载 作者:行者123 更新时间:2023-11-28 03:51:16 24 4
gpt4 key购买 nike

我正在进行一个项目,我将在网络上实时传输网络摄像头图像。但是 Iplimage 的尺寸很大,所以它不适合 udp 数据包。我必须将其压缩为 jpeg 格式。我做了一些研究,很多例子确实将图片保存在磁盘上然后读取到内存中。但我想在内存中做到这一点。我在我的项目中使用 Qt。

是否有任何解决方案可以在内存中压缩 Iplimage?可能 Qt 对此有解决方案?

最佳答案

Qt 有 QImageWriter支持 JPEG 格式并允许指定压缩级别的类。您可以使用它来将 QImage 数据保存到 QByteArray .下面是一个例子:

QImage image("/home/image_from.png");

QByteArray array;
QBuffer buffer(&array);

// write image to memory buffer
QImageWriter writer;
writer.setDevice(&buffer);
writer.setFormat("JPEG");
writer.setCompression(9);
writer.write(image);

或者您可以使用 QPixmap保存方法;它还允许将内存缓冲区指定为输出设备:

QImage image("/home/image_from.png");
QPixmap pixmap = QPixmap::fromImage(image);

QByteArray array;
QBuffer buffer(&array);
pixmap.save(&buffer, "JPEG", 9);

希望这对你有帮助,问候

关于c++ - 在内存中将 Iplimage 压缩为 jpeg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5441401/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com