2011-09-30 13 views
0

我已經使用Java在一個PNG文件中成功編寫了我的隱寫術程序。我的程序在PNG和BMP文件中工作得很好。但是當我試圖在JPG文件中運行我的程序時,顯示的數據與原始數據不一樣。當然,每種文件類型的標題都不相同。所以現在我想知道; PNG和JPG文件的數據結構不一樣嗎?我需要知道如何操縱JPG文件的字節而不影響頁眉和頁腳。如何編輯保存其頁眉和頁腳的JPG文件的字節代碼? (用Java編寫)

謝謝。

回答

2

首先,您需要告訴您用於圖像隱寫的確切方法,例如,隱藏祕密數據的圖像的像素的LSB的,讀取文件的二進制格式等

如果與LSB的工作是你的程序,然後我希望以下的回答滿足您的查詢 -

「 PNG'和'BMP'實際上是無損文件格式。在創建新圖像時,處理這些格式的像素位後,不會丟失數據。這是您能夠檢索所有隱藏數據的原因。

然而,'JPG'格式使用有損壓縮技術,由此導致隱藏在像素中的數據丟失。即使我遇到了這個問題,對此的解決方案存在於處理圖像變換域。您需要使用直接餘弦變換方法來實現它。

變換域涉及操縱算法和圖像變換,如離散餘弦變換(DCT)和小波變換。這些方法可以隱藏圖像更重要的區域中的信息,並且還可以像亮度那樣操縱圖像的屬性。這些類型的技術比圖像域按位隱寫方法更有效。變換域技術可以應用於任何格式的圖像。此外,無損和無損格式之間的轉換可能存在。

DCT如何在隱寫術中起作用?

圖像被分解爲8x8像素塊。 DCT從左到右,從上到下應用於每個塊。量化表壓縮每個塊以縮放DCT係數,並且消息被嵌入到縮放的DCT係數中。

這種方法仍然需要大量的研究。我正在研究它的代碼,並會盡快發佈。

很高興聽到來自其他開發人員的其他方法或不同的高效技術。