Android培訓班(25) – Android移動開發技術文章_手機開發 Android移動開發教學課程

<!– @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;


}


 

發佈留言