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




2014年1月14日 星期二

[筆記] bmp 檔案說明

BMP圖檔的格式,在「點陣圖 (Bitmap) 檔案格式」一文中有詳細的介紹。
這次使用到的 是"單色點陣圖(使用 2 色調色盤)" , 因此只研究這個。

BMP格式 : 主要由 4 個部分組成 File Header + Info Header + optional palette + Image Raw Data

【File Header】14 bytes
File Header Format









【註1】若使用gcc編譯 , "unsigned short bfType" 會自動padding成 4 bytes, 因此讀取資料會有問題 . 
              所以需要在Data Structure 前 , 加以下兩行code , 強迫gcc 以 2 bytes為單位。
   #pragma pack(push)   /* push current alignment to stack */       
   #pragma pack(2)        /* set alignment  to 2 byte boundary */    

【File Header範例】
    
 1.  bfType  :     0x4D42   ’’M‘ (0x4D) 、B‘ (0×42)
 2.  bfSize    :   0x0000043E = 1086 (檔案大小)
 3. bfOffBit :   0x0000003E =  62    (從檔案頭算起第62位置開始是 Image Data)

【註2】 該系統為 little-endian.  從code讀取 bfType = 0x4D42 . 但從UltraEdit 編輯器打開時,
               看到的值為 0x424D(實際儲存在memory的順序) , 這是 Intel 制定的儲存方式,
               把值小的位元組(0x4D)存在前面


【Info Header】40 bytes













【Info Header 範例】








1. biSize                      :   0x00000028 = 40    (Bitmap Info Header 的長度)
2. biWidth                   :   0x00000030 = 48    (圖檔寬度為 48 pixel)
3. biHeight                  :   0x00000080 = 128  (圖檔高度為 128 pixel)
4. biPlanes                  :    0x01 = 1                  (位元圖層數為1)
5. biBitCount              :    0x01 = 1                  (單色點陣圖 ,使用黑白2 色調色盤 )
【註3】每個像素的位元數 1:單色點陣圖(使用 2 色調色盤)
              4:4 位元點陣圖(使用 16 色調色盤)
              8:8 位元點陣圖(使用 256 色調色盤)
            16:16 位元高彩點陣圖(不一定使用調色盤)
            24:24 位元全彩點陣圖(不使用調色盤)
            32:32 位元全彩點陣圖(不一定使用調色盤)

6. biCompression        :    0x0                          (0:未壓縮)
7. biSizeImage             :   0x00000400 =1024  (點陣圖的資料大小為1024 bytes)
8. biXPelsPerMeter    :   0x00000b12 =2834  (4 bytes,水平解析度)
9. biYPelsPerMeter    :   0x00000b12 =2834  (4 bytes,垂直解析度)
10. biClrUsed              :   0x0                           (點陣圖使用的調色盤顏色數)
11. biClrImportant      :   0x0                           (重要的顏色數)

Image Raw Data 】
   BMP在儲存影像時,資料記錄及讀取都是由圖片的左下到右上,另外紀錄圖形各列的資訊
如果不是 4-byte(一般,遵守 long boundary 規則) 或 2-byte(有壓縮的 BMP,遵守 word boundary
規則) 的倍數需補零(figure 2)直到符合規則,在讀檔時當然也要記得略過這些多餘的部分。

     

1-bit Bitmap 

1-bit Bitmap (biBitCount=1),是屬於單色模式的影像,色表可有可無 (當沒有色表時 1 表示白
色、 0 表示黑色),所以讀取 1-bit Bitmap 時必須注意是否具有色表。另外比較特別的就是,它
將 8 個像素的資料集中在一個 byte 內, 所以抓取每個 byte 後都必須分析當中的資料,這是 1-
bit Bitmap 比較麻煩的地方。




2011年9月2日 星期五

蛋黃酥製作DIY

又到了吃月餅的時間了 ~~
去年帶回家的月餅 家人吃的頻頻說讚 ~~  今年更是提早預約要吃 ~~
所以今年依舊拜託男友姐姐幫忙指導做月餅 ~~



製作 24顆蛋黃酥
(一顆成本 大概10 元左右,  但人工成本大約2小時)

器具 :
   量匙,  量杯,  桿麵棍,  粘板,  刮刀,  刮板,  料理磅秤,  烤箱,  刷子, 不鏽鋼盆















材料 :
   外皮 
       中筋 * 2 杯 , 油酥 * 5 大匙 , 水 1/2 杯

   內油酥皮 :
        低筋* 1.5杯 ,  油酥 *6 大匙

   內餡 :
        地瓜, 綠豆 , 芋頭 , 紅豆  (依造喜好調配 :  total 重量  25g * 24粒  )
        鹹蛋黃  * 12 粒
 
   蛋黃液 * 1 顆, 芝麻少許















步驟 :
1. 處理鹹蛋黃


先把蛋殼洗乾淨, 再取出蛋黃切半
 











2. 處理內餡



內餡每球25g
  














3. 內餡包蛋黃
 
把內餡壓平再把蛋黃包進去, 揉成一顆圓球













4. 油皮 :  需要兩種材料 (外皮與內油酥皮 )
   * 外皮製作方式 :
         材料 : 中筋 * 2 杯 , 油酥 * 5 大匙 , 水 1/2 杯
 
不斷攪拌材料直到均勻, 再用濕布蓋上避免水分蒸發, 需要靜置20分鐘以上
 









    *  內油酥皮製作方式 :
           材料 : 低筋* 1.5杯 , 油酥 *6 大匙

一段攪拌材料直到均勻, 不需蓋濕布與靜置
 




 
 
 
 
 
 

 *  把內油酥皮與外皮各切成24等份, 並把外皮包內油酥皮, 再擀成圓片
 

內皮與外皮各切成24等分
   
 
 
 
 
 
 

 把外皮擀平, 再把內油酥皮包在裡面
   
 
 
 
 
 
 


用麵桿棍擀平, 再捲起
  







轉90度後擀成長條狀, 捲起, 再翻轉成直立 
 







再擀成圓形, 油皮製作完畢
 


















5.  油皮內包 (3)內餡 , 再外觀整成漂亮的圓形 , 即完成











6. 烤箱150度C預熱5分鐘 , 再把蛋黃酥放入烤箱烤 15分鐘 (150度C)










7. 半熟蛋黃酥 , 塗上 蛋黃液與灑芝麻粉



































8. 再放入烤箱烤150度C 10分鐘 , 隨時注意外皮, 若有裂掉痕跡, 溫度可調低至 130度C



9. 香噴噴又低油蛋黃酥完成 !




















10. 成品



11. 送禮自用兩相宜

2010年7月27日 星期二

紅茶

因為太愛喝飲料了
尤其是早餐
尤其是我男朋友 每天早上都一定要給早餐店賺飲料錢



以下是網路上有人的煮法
----
我家也是早餐店, 每天下午都要煮紅茶,


放涼後冰冰箱, 隔天早上就有免加冰塊的冰紅茶了,

一天要煮三大鍋, 大約是40L的大鍋子, 包括奶茶的份量,

用的是立頓營業用茶包, 紅色盒子, 裡面就是一般的紅茶包,

把一整盒的茶包拿出來, 繩子全部集成一束,

一盒泡一鍋, 大概也是水滾後關火, 把茶包束放進去,

繩子綁在鍋子的耳朵, 然後放白砂糖調味,



要不苦不澀,

不苦, 水溫不能過高, 太高會苦,

不澀, 水不能攪動, 要讓茶包慢慢的浸透,



這是我老爸說的, 他煮的紅茶還蠻受歡迎就是了,

開早餐店20年來, 天天都是三大鍋, 遇到旺季(附近有考場),

有時候要準備到六大鍋的紅茶才夠賣,



茶包的浸泡時間, 我爸說都放個10分鐘然後直接拉起繩子,

此時才可以加白砂糖攪拌調味,

如果真的有啥要算比例的, 大概是一盒茶包要泡多少水吧,

40L的鍋子八到九分滿, 差不多也是30幾公升了,

他煮了20年, 已經是憑經驗了, 前年退休了.

2010年7月26日 星期一

花椰菜 ( 菜花 )

花椰菜栽培最好輪種,性喜冷涼乾燥的氣候,繁殖均用播種法。栽培土質以富涵有機質之沙質壤土或黏質壤土為佳,排水與日照均需良好。


轉錄  樂活栽 (http://blog.yam.com/greenlohas/category/1543004)
可以先育苗再移入栽培器中,種子與種子保持一點距離,覆蓋上薄土,待育苗完成後移植,每天在中午前澆水,防止土壤乾,發芽後把生長不好的苗間拔掉,本葉5~6枚時疏苗,苗距40公分左右,3~4葉施肥一次肥,7~8葉施追肥,之後每隔10天施一次肥,若植株長高則立支柱,青花菜缺硼時,莖部發生空洞,影響品質,花蕾形成期使用尿素液噴灑葉面,促進花蕾碩大,花蕾直徑直徑達10公分,帶莖10公分左右切下收穫。

2010年7月4日 星期日

小朋友大改造

最近小朋友一直在抓癢

外加天氣太熱

所以決定幫她剪毛 

工具 : 狗狗剃毛刀 ,  打薄剪刀

大約花了三個小時

剪完後 很像被剃毛的綿羊

before






after






 把毛衣脫掉了 ,  感覺清涼許多
 我們已經很努力讓她的不太像狗啃的  XD

  小朋友 是  正妹  !!!!!!

2010年6月22日 星期二

九層塔

我第一次種植的種子就是九層塔
滿心歡喜的撥種 

但是因為不知道怎麼撥種  種子間的距離為多少

所以就胡亂的丟進盆栽裡

才隔兩天 就發芽了 !!!

可是接下來就是悲慘的過程

因為種子之間太靠近了

大家開始互相牽扯    開始往地面橫向上發展   ><

整個慘慘慘

讓我很想整個把它拔掉   來個眼不見為淨



~~ 小小筆記 ~~
種植要領

http://www.tacocat.com.tw/top/v5.asp
別名:羅勒

栽種時間:全年均可,5月至10月最佳
平均採收日:40天左右
九層塔種子播種時期以5月上旬至10月上旬為適宜,溫度高時較有利於發芽,播種可利用穴盤與培養土來培育,管理簡便;若是採用田間直接播種,宜行作畦栽培,畦寬60-80公分,二植行,株距30公分,每一植穴播下2-3粒種子,發芽後本葉3-4枚時行間拔疏苗,僅留健康苗1株。


九層塔適合全日照,以及通風排水良好之地,需保持一定的濕度。成長期間宜多施加天然有機肥,成株後可摘除葉梢食用,別擔心會影響九層塔的生長,這樣會讓它枝葉越來越茂密。九層塔開花呈現寶塔狀,故得此名,若看到九層塔開花,建議摘除,否則會減少壽命喔!

九層塔於夏秋季間開花 ,性喜陽光充足、氣候溫暖的天氣,土壤保持肥沃、鹼性為佳,不耐寒,冬天的生長較為遲緩,在管理上非常的容易

家中種有一株或二株九層塔,可天天摘除一些葉子來伴菜,繁殖的方法不限於種子,您可剪取約5公分的莖葉來插枝,放在陰涼的地方並保持土壤水分潮濕,如此即可孕育更多的九層塔來取代老株