Android培訓班(25)

來源:互聯網
上載者:User

<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } -->

其中Android.mk是工程管理檔案,to565.c是來源程式,就是實現原始圖片產生565格式,或者從565格式的圖片產生原始格式。那麼什麼樣的格式叫做原始格式呢?什麼樣的格式叫做565格式呢?為什麼需要使用565格式呢?在我們表達圖片的色彩空間裡,主要使用紅、綠、藍三種顏色,在數字化後,每種顏色採用8位表達,那麼每個點佔用的大小,就是24位,這樣的方式儲存到檔案裡,就是原始格式,因為沒有任何的變換。不過採用這種格式時,檔案會比較大,特別在嵌入系統裡空間特別有限,因此需要轉換為一種在顏色和空間大小佔用都比較合理的方式。而這種方式,就是565的格式,當然這種方式是以損失顏色精度為條件的。在565格式裡,就是紅色佔5位,綠色佔6位,藍色佔5位,剛好16位,採用兩個位元組就可以表達了,這樣比原來每個點少佔用一個位元組。

接著來分析這個程式的代碼,先從main函數開始:

int main(int argc, char **argv)

{

if ((argc == 2) && (!strcmp(argv[1],"-rle"))) {

在這裡判斷輸入的命令列參數是否等於三個,一個命令列參數-rle,這個參數是表示使用遊程編碼壓縮。後面兩個參數,一個是表示檔案輸入,一個是表示檔案輸出。

 

to_565_rle();

在這裡調用函數 to_565_rle把原始格式轉換為565的格式,並且使用遊程編碼壓縮後,再輸出到檔案裡。

 

} else {

if (argc > 2 && (!strcmp(argv[1], "-w"))) {

如果超過三個參數,並且有參數為-w,那麼就執行下面的代碼。

 

to_565_raw_dither(atoi(argv[2]));

這裡調用函數 to_565_raw_dither實現帶抖動演算法的565編碼格式輸出。

 

} else {

to_565_raw();

這裡調用函數to_565_raw實現原始的565格式輸出。

}

}

return 0;

}

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.