首頁>Club>
我在做一個影象加密軟體,使用純C語言完成。 初步的想法是,獲取圖片所有畫素點的值,然後進行加密,但是我在第一步「獲取畫素點值」上遇到了困難。請問我該瞭解什麼知識呢?
1
回覆列表
  • 1 # 司馬小光

    首先你需要讀檔案。

    然後,你需要解析檔案,為了解析這個檔案,你需要知道檔案的structure。

    因為你不知道structure而且因為這個事情比較繁瑣,所以你應該使用相應的庫。

    一般情況下,這些庫的名字叫做:libjpeg,libpng,libbmp(bmp這個並沒有著名的庫),libgif。

    cxImage是一個不錯的c++庫,不過既然你是純C,那麼即使你的程式碼是純C但依賴libc++顯然也是不清真的……當然,這不到庫的時候,你應該去這裡找http://www.github.com然後通常影象在記憶體中的狀態。

    常見的是三維char陣列:

    32位色:char[height][width][4],4個位元組的順序通常是argb或者rgba,png正文解壓縮後就是這個樣子,正常情況下視訊記憶體也是這個樣子的。

    24位色:char[height][width][3],三個位元組的順序一般是rgb:無壓縮的bmp的正文段就是這個樣子。

    8位灰度圖:char[height][width],每一個位元組是灰度值。

    點陣圖:bit[height][width],正常情況下是char[height][int(width/8)],這種形式和上面的灰度圖也是很常見的。

  • 中秋節和大豐收的關聯?
  • 老是抄古人詩詞的人能稱書法家嗎?