如果可能,使用libjpeg我想從JPEG圖像的中間讀取一行而不讀取所有前面的行。這可以做到嗎?我可以使用libjpeg讀取特定的圖像行嗎?
回答
答案几乎肯定是「你可以,但需要比你想要的更多的努力」。
JPEG圖像是一種標記流,它包含整個壓縮圖像的全局信息或與圖像特定部分相關的信息。壓縮通過將圖像分解成色彩平面來工作,可能將色彩空間改變爲可對色彩信息進行降採樣的色彩空間,並在每個以8x8像素塊爲單位的平面內進行。
例如,如果通過僅轉置基本塊和每個塊內部的係數來確定壓縮圖像的大小使其僅由整個塊構成,則可以將壓縮圖像旋轉90度;即不需要解壓縮,旋轉真實圖像並重新壓縮。
鑑於此,您的方法是在進入庫的過程中解析標記流,將所有標記全局傳遞給圖像,修改與圖像大小相關的任何標記,並刪除包含係數的標記裁剪矩形。
如果限制種植完成基本塊太粗糙,您可能需要進一步裁剪結果。
我不清楚的是,是否有真正的勝利替代方案,即從圖書館出來的結果。該庫具有高度可配置性,因此您可以提供未壓縮的數據使用者功能,該功能會丟棄裁剪矩形之外的所有像素,並只保存想要保留的像素。
感謝您的詳細評論。我認爲你是對的,與簡單地處理libjpeg的輸出相比,它沒有什麼優勢。我最初的想法是將圖像保存在磁盤上,然後加載和繪製特定的圖塊。最後,我認爲更好的方法是簡單地一次處理源文件一行,在磁盤上生成緩存切片,然後根據需要加載這些切片。 – 2010-09-11 02:35:34
@Michael Cooper,這對我很有意義。您可以使用多分辨率金字塔,並按需填充切片,並將其緩存回磁盤。我相信這實質上就是Adobe Light Room在其縮略圖緩存中所做的,例如,每個分辨率都放在一個單獨的文件中。 – RBerteig 2010-09-11 03:21:16
- 1. 我可以使用libjpeg來讀取帶有alpha通道的JPEG嗎?
- 2. 我可以在CakePHP的行爲中使用特定模型嗎?
- 3. 可以使用imageIndexTitlesForTableView的圖像嗎?
- 4. 我可以彈出特定的ViewController嗎?
- 5. 我可以使用Sparkfun 13.56讀取手機的NFC嗎?
- 6. 我可以使用從文件中讀取的testng組嗎?
- 7. 我可以使用CGDataProviderCreateSequential()按順序讀取CGImageRef的數據嗎?
- 8. 我可以使用MPI中的API讀取遠程文件嗎?
- 9. 我可以使用PowerShell「繪製」/使用給定的文本創建圖像嗎?
- 10. 我可以在FastReport中讀取RTF嗎?
- 11. 使用SuperCSV讀取特定行
- 12. 我可以在運行時禁用特定子視圖的自動佈局嗎?
- 13. 如何使用MEX從特定位置讀取圖像?
- 14. 我可以拉Instagram使用特定標籤的照片嗎?
- 15. 我們可以讓postgres爲特定的表使用緩存嗎?
- 16. 我可以在Symfony2中使用特定的路線嗎?
- 17. 我可以配置cxf使用特定的XML解析器嗎?
- 18. 我可以使用SVG圖像作爲按鈕圖標嗎?
- 19. 我可以使用Catalyst來顯示圖像或圖形嗎?
- 20. 我可以使用Node.js讀取PDF或Word文檔嗎?
- 21. 我可以使用Facebook API讀取私人訊息嗎?
- 22. 我可以使用jprofiler讀取jmap轉儲嗎?
- 23. 我可以使用JQuery從web.config讀取數據嗎?
- 24. 我可以使用Webassembly從磁盤讀取文件嗎?
- 25. 我可以使用Python中的正則表達式搜索特定的行嗎?
- 26. 我可以使用Ruby從pdf獲取特定單詞的座標嗎?
- 27. 在JMX中,我可以直接獲取特定的MBeanAttributeInfo嗎?
- 28. 我可以使用FTP替換ColdFusion站點上的圖像嗎?
- 29. python可以獲取特定窗口的屏幕截圖嗎?
- 30. org.bouncycastle.openssl.PEMReader可以讀取java.security.PrivateKey嗎?
如果你的意思是直接從文件中,沒辦法。 JPEG格式被嚴格壓縮,所以你不能在不需要解壓縮整個文件的情況下拉出一行。 – 2010-09-09 21:41:27
我擔心可能會出現這種情況,儘管我曾希望JPEG壓縮可能偶爾會重置,從而允許無序的讀取。看看libpng,它似乎也只允許順序訪問。那麼,我假設PNG也不能被隨機讀取? – 2010-09-09 22:45:21
PNG可能更適合隨機訪問,但前提是其無損壓縮模式未使用。大多數圖像處理庫都將文件I/O作爲一種填充和存儲幀緩衝區的方式,並且所有實際處理都是在包含整個圖像的未壓縮緩衝區的RAM中完成的。魔鬼詳細介紹瞭如何組織緩衝區。 – RBerteig 2010-09-10 01:02:13