我正在研究一個項目,我將在網絡上實時傳輸網絡攝像頭圖像。但Iplimage具有很大的尺寸,因此不適合udp數據包。我必須將其壓縮爲jpeg格式。我做了一些研究,很多例子都將照片保存在磁盤上,然後讀到內存中。但我想要記憶。我在我的項目上使用Qt。在內存上將Iplimage壓縮爲jpeg
有沒有解決方案在內存上壓縮Iplimage? 可能是Qt有一個解決方案嗎?
我正在研究一個項目,我將在網絡上實時傳輸網絡攝像頭圖像。但Iplimage具有很大的尺寸,因此不適合udp數據包。我必須將其壓縮爲jpeg格式。我做了一些研究,很多例子都將照片保存在磁盤上,然後讀到內存中。但我想要記憶。我在我的項目上使用Qt。在內存上將Iplimage壓縮爲jpeg
有沒有解決方案在內存上壓縮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);
希望這會有所幫助,至於
是否到jpeg你足夠幸運,[ImageMagick](http://www.imagemagick.org/script/formats.php)瞭解你的格式?我沒有在列表中看到「Iplimage」,但很難從ImageMagick中找出丟失的圖像類型。 – sarnold 2011-03-26 09:33:49
無論如何,壓縮映像應該被分割成幾個UDP數據包。我懷疑jpeg壓縮映像只適合一個UDP數據包。 – 2011-03-26 19:40:41