framebuffer 對 (1bpp)BMP 圖片的支持

關於bmp的相關文件格式及其知識,可以參考http://blog.chinaunix.net/u/21684/showart_1332660.html

 

這裏主要說下Framebuffer對於1bpp BMP文件的顯示的實現。

 

按照文件格式,將圖片數據複製到framebuffer,可以顯示垂直和水平的線條,但是斜線顯示就會出現問題。後來經過比對發現這個現象的原因,比如說要在framebuffer的左上角(0,0)顯示一個亮點,那framebuffer的第一個字節應該位0x01.而對於bmp圖片來說,如果要在圖片的左上角顯示一個亮點,則在bmp文件中的圖片數據區的對應字節(最後一行第一個字節)應該位0x80。也就是說當把圖片的數據按照格式複製到framebuffer時候,對於相同意義的顯示內容,他們每個字節的高低位完全相反,所以在display的時候, 需要對圖片數據區內容的每個字節進行轉換,具體實現可以不一樣。

 

對於單色圖片的顯示定位,也需要考慮移位,因爲當顯示的像素位置不是一個字節開始的時候,就需要對於該行的數據進行相應移位,移位的時候需要注意 c語言中的潛在的類型轉換,一定要確定移位的結果是自己預先想要的。另外一個就是每行的第一字節,需要和framebuffer原有的數據進行比對,然後輸出。

 

發佈了31 篇原創文章 · 獲贊 0 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章