2017-07-03 43 views
0

我試圖在visual studio中顯示由攝像頭髮送的jpeg流。數據格式爲十六進制格式,並帶有標準jpeg標題。在Visual Studio中顯示jpeg流的最佳方式C++

嗯,我知道如何顯示一個JPEG圖像,所以我的計劃是讀取數據,使用文件I/O函數將它保存爲jpeg文件,然後將其顯示在窗體中。每次出現新圖像時,所顯示的圖像都將被替換(如刷新)。

這是否是正確的方法呢?或者有沒有其他的功能或方法來實現它?

謝謝。

+0

這似乎取決於表單的類型 - 並且會因框架而異,但它聽起來像一個很好的計劃A. – doctorlove

+0

也許會添加顯示來自文件的圖像的代碼?你可以[編輯]你的問題來添加這個信息。 – anatolyg

+1

_「數據格式爲十六進制」_你確定這不僅僅是視覺表現的方式嗎?任何原始數據流都以ASCII形式傳輸是非常奇怪的。更有可能它是實際數據字節的[二進制]流。 –

回答

-1

您可以將數據視爲圖像文件流,但它在硬盤驅動器上很難,效率也不是很高。這是一種適合隨意使用的程序,但在任何專業環境下都可能無法接受。

您將收到一個二進制數據流,將其解碼爲rgb緩衝區,然後在Windows上顯示數據,使用BitBlt函數將像素直接寫入屏幕。

如果您沒有自己的圖片,請從這裏取我的JPEG解碼器https://github.com/MalcolmMcLean/babyxrc/tree/master/src。你可以簡單地修改它來獲取比特流而不是stdlib文件*。

+0

感謝Malcolm的幫助,但爲了解碼數據,首先我必須從輸入流「創建」一個jpeg文件,然後將其解碼爲一個rgb緩衝區,然後顯示它,這與我打算使用的流程類似唯一的區別是我顯示jpeg而沒有解碼它,我沒有清楚地看到效率方面的優勢,也許我很困惑,但是,請你解釋一下我的優勢是什麼? – joe

+0

數據是以原始ppm(rgb)值還是以JPEG編碼流的形式進入? –

+0

它正以JPEG編碼流的形式出現,例如我可以將輸入的十六進制值打印並保存在文本文件中,然後將擴展名更改爲jpeg並查看圖像。 – joe

相關問題