首先一點上下文。我需要翻轉一個PNG圖像。我得到每個字節的信息(按順序),我必須將它翻轉爲一個流。我設法分割和解析塊。但是,當我有IDAT塊數據時,我不知道如何處理它以便翻轉它。下降IDAT塊來翻轉圖像
從IHDR INFO:位深度= 08(每樣本8位)和顏色類型= 06. 的圖像是800×600 = 480000
的IDAT大小是179502,使得是的0.374總像素大小(怪異)。
如果我翻轉像素(所有的IDAT數據,因爲它)我得到一個圖像,當我打開它只是顯示一個透明的圖像。我也嘗試使用4字節= 1像素,因爲我有RGB + alpha但仍然沒有好的結果。 (總是一個透明的圖像......這也是非常奇怪的...我希望隨機圖像,而不是透明的圖像)。
我已經讀過信息是壓縮的,所以我的計劃是解壓縮它,翻轉RGB陣列,然後再次壓縮,但是...我如何解壓縮並再次壓縮它?我無法找到信息/算法來做到這一點。
我也發現0x78十六進制幾乎總是在IDAT部分之後,所以我推斷壓縮像素陣列並不是直接在IDAT之後啓動,而是在一些字節之後......如果是這樣的話...... 它是如何組織的?它僅僅是像素數組,還是它在IDAT塊數據之前和/或之後有一些信息?
希望我對我的問題已經很清楚了,我要求原諒我的英語並不完美。 –