2014年1月15日 星期三

[筆記] bmp 影像檔 轉為 16-hex Array (for SH1106 OLED)


BMP在儲存影像時,資料記錄及讀取都是由圖片的左下到右上(figure 1) 。
8 pixel 為 1 byte (figure 2)

   
Figure 2


但SH1106 OLED 讀圖檔的方式, 由圖片的左上開始 , Page0 讀取完後 , 才繼續讀 Page1 , ...
figure 3






















[ 困難點 ]
      bmp在儲存pixel 方式 是橫向的從左至右 8 pixel 存為 1 byte。 但 SSH1106 是縱向從上
      至下 8 pixel 為 1 byte。 


[ 實做範例 ]
   若希望 SH1106 OLED 顯示以下圖案 , 如何把bmp 轉成 16-hex array ?

        
figure 4


  首先要先右選轉90度 ,

       
Figure 5


 再垂直旋轉 ,

       
Figure 6



















從 (figure 6) 來看 , 把BMP旋轉成該方向。若以BMP在儲存影像的方式 , 幾乎符合 SH1106 存取
Pixel的方式 。但可以發現, 若SH1106 讀取 1 , 3 , 5, 7 , .... byte , S是顛倒方向 。
 因此讀取每個byte的方向要從高位元往低位元讀取 , 所以還要做 bit reverse 動作。
        
Figure 7




沒有留言:

張貼留言