【PNG】彩色轉灰階/黑白


【目的】

將彩色轉灰階/黑白。通常取黑白之前要先取灰階(RGB/3 大於7F為白,相反為黑)

【程式碼】

  1. 彩色轉灰階法一: rgb 三色取平均數
    <?php
    $img = imagecreatefrompng('lena_std.png');
    imageTrueColorToPalette($img,true,256);
    $numColors = imageColorsTotal($img);
    for ($x = 0; $x < $numColors; $x++)
      {
        list($r,$g,$b) = array_values(imageColorsForIndex($img,$x));
        $avg = intval(($r + $g + $b) / 3);
        imageColorSet($img,$x,$avg,$avg,$avg);
      }
    imagepng($img,'lena_gray.png');
    imagedestroy($img);
    ?>
  2. 彩色轉灰階法二: R*0.299 + G*0.587+B*0.114 
    <?php 
    $img = imagecreatefrompng('lena_std.png');
    imageTrueColorToPalette($img,true,256);
    $numColors = imageColorsTotal($img);
    for ($x = 0; $x < $numColors; $x++)
      {
        list($r,$g,$b) = array_values(imageColorsForIndex($img,$x));     
        $avg = intval($r*0.299 + $g*0.587 + $b*0.114);
    	imageColorSet($img,$x,$avg,$avg,$avg);
      }
    imagepng($img,'lena_gray.png');
    imagedestroy($img);
    ?>

  3. 彩色轉灰階法三: 直接使用GD內建的imagefilter(IMG_FILTER_GRAYSCALE)
    <?php 
    $im = imagecreatefrompng('lena_std.png'); 
    if($im && imagefilter($im, IMG_FILTER_GRAYSCALE)) 
    {     
      echo 'Image converted to grayscale.';     
      imagepng($im, 'lena_gray.png'); 
    } 
     else 
    {  
      echo 'Conversion to grayscale failed.'; 
    } 
    imagedestroy($im); 
    ?>
  4. 彩色轉單色法一:
    <?php
    $img = imagecreatefrompng('lena_std.png');
    imageTrueColorToPalette($img,true,256);
    $numColors = imageColorsTotal($img);
    for ($x = 0; $x < $numColors; $x++)
      {
        list($r,$g,$b) = array_values(imageColorsForIndex($img,$x));
        $avg = intval($r*0.299+$g*0.587+$b*0.114);
    	if($avg >= 127){ $avg = 255; }
    	else{$avg = 0;}
        imageColorSet($img,$x,$avg,$avg,$avg);
      }
    imagepng($img,'lena_bw.png');
    imagedestroy($img);
    ?>

【結果】

  1. 原始圖片(300x300 24bits lena_std.png)
    image
  2. 彩色轉灰階轉檔結果(300x300 8bits lena_gray.png)
    image
  3. 彩色轉單色結果(lena_bw.png)
    image

【參考】

【備註】

  • bool imagetruecolortopalette ( resource image, bool dither, int ncolors )
    第二個參數(true/false)為指明圖像是否被抖動(dithered)。
    第三個參數(2/4../256)為定調色板中被保留的顏色的最大數目。

【Mac】Screen Capture


原來Mac可以抓單獨視窗 cmd+shift+4+space,記一下先。

【參考】

【札記】五月有什計畫


【20100501】和老婆整理家裡,把冬天被子和衣服收以來,羽絨送洗。下午去拿昨天缺的手機的2M記憶卡,快遞手機給媽媽,應該是明天下午到。黑貓 http://www.t-cat.com.tw/
突然發現之前的屋主真的很厲害,原來客廳往房間的走道上面的天花板有預留兩個空間很大的儲藏室,所以就先把目前不會用到的雜物與空箱子收進去。

【20100502】早上跟老婆去愛買買菜。下午把前幾天洗的被單用真空袋收起來。

【20100503】今天勞工加補假。約簡董來家吃飯。簡董公司離我家很近,所以中晚餐都來我家吃。
去中華電信處理了一些事情,去三民/敦煌買書。

【20100504】今天出門看電梯告示,說有兩戶被偷。 
手機今天變3G不過忘了帶SIM卡出門換。
學英語的幾個疑惑-徐薇為你解惑
http://my.opera.com/rancilio2000/blog/show.dml/10500341

【20100505】UVESA的設定,有空再看
http://lxr.free-electrons.com/source/Documentation/fb/uvesafb.txt?v=2.6.34-rc2

去買游泳長期票。

【20100506】

晚上和老婆去游泳。

【20100507】

老婆去港乾路辦NP。

【20100508】

晚上和老婆去游泳。

【20100509】

【20100510】

看牙齒。

【20100511】

老婆去辦手機 KF300,這隻是要和媽媽換的,因為之前那隻他嫌太長了。這禮拜會託岳父順便帶下去。
順便一起辦帳單合併,不用每隻手機都寄一張。

【20100512】

【20100513】

【20100514】

下午請假去割壓克力板,台北30x30x0.5 要 150。
岳父岳母上台北,吃完晚餐後,和他們一起看葉問2。

【20100515】

和岳父去河堤騎單車。之後一起去好是多買一些日用品。中午就吃好事多的披薩。
下午去三峽祖師廟看它的雕刻和建築,順便去參觀一位朋友買在三峽的新房子。
晚上一起去找老婆的三姑姑。

【20100516】

和岳父去河堤騎單車。這次騎的比較遠,繞過麥帥一橋和大直橋回家。
中午又去三姑姑家吃午餐。他們下午坐高鐵,晚上六點多就到家了。

【20100517】

看牙齒。

【20100518】

晚上和老婆沿著河堤散步,走了快一小時。

【20100519】

幫同事錄東森57健康同學會。

【20100520】

十點多就了,現在越來越早睡了。

【20100521】

下午茶是杏仁豆腐。

【20100522】

游泳與報稅。

【20100523】
晚上六點半吃完飯後就先把中信卡注銷。參考 http://blog.xuite.net/skylooker/note/18625012
199買了顆大西瓜,可以放到冰箱,幾乎剩下沒多少空間。

image image

【20100524】

【20100525】

【20100526】

【20100527】

【20100528】

下午茶是豆花。

【20100529】

晚上和老婆去游泳。

【20100530】

晚上和老婆去游泳。

【20100531】

下午請假,看牙齒。和牙醫奮鬥了一個下午。

【單字】
off-screen 真實的;生活中的;非屏幕上的
blender 混合器
distortion 失真
intensities 強度
cubic 立方體
antialiasing 抗鋸齒
arbitrary 隨意
ultimate  最終
primitive 原始
179
outline 概要
gradients 梯度
alternative 替代
render 給予/粉刷
conical 錐
radial徑向
oven烤箱
central 中間

【Target】

  1. Book
    1. 每天只要三十分鐘
      http://www.books.com.tw/exep/prod/booksfile.php?item=0010408459
    2. C++ BUILDER與影像處理(9574997243)
      http://www.sanmin.com.tw/page-product.asp?pf_id=99Z155o10h104g63P101y70R107M126RULaNPw634HpJ
    3. 學俄語講俄語
      http://www.cavesbooks.com.tw/mainpage/mainpage_bookcontent.aspx?sn=4167&book_classify_sn=315
  2. Blog
    1. 詹麗馨的教學天地 (英文文章部分)
      http://blog.roodo.com/anniechan
    2. 數位影像處理技術上課投影片(裡面還有很多密碼學與影像處理的投影片)
      http://msn.iecs.fcu.edu.tw/courses/digital_image/slides/report.php

【Review】

【Others】

  1. 雙福椅藝
    02 29715815 0935084356

【SimplyBurns】燒錄軟體


SimplyBurns http://simplyburns.berlios.de/
可以讓 Mac/Windows用的類似Nero的燒錄軟體。

【抹除光碟】
一直都找不到如何抹除光碟,原來在這邊。

  1. 選取 資料 | 抹除光碟。

image

【札記】不知不覺四月了


【20100401】

忙了一天 PM 要 demo 的東西。

【20100402】

Xbox Project Natal http://www.xbox.com/en-US/live/projectnatal/

【20100403】

早上五點出發回台南。順道去拜訪岳父的朋友。
下午打掃家裡,打算把專科的一些實習工具絡鐵那些的帶上台北。
image 
▲途中經過的天主教永年國中,很漂亮的一所學校。
image
▲岳父剛好在他朋友那邊,順便去參觀一下農機工廠。

【20100404】

早上和老婆到大仙寺拜阿公阿嬤。下午到老婆家吃潤餅。
image 
▲老婆第一次準備潤餅的菜色。
image
▲左邊包好的潤餅是要拜拜的。剩下右邊的的菜先用保鮮膜包起來。

【20100405】

早上先到祖廟拜拜,下午要和叔叔們一起去掃四位阿祖的墓。
因為爸媽生意忙,所以包含昨天和今天都只有我和老婆代表我們家去。
image
▲阿公家的老房子充滿了許多我兒時的回憶。小時候回阿公家就是住這裡。
image 
▲廚房上面有開採光,所以裡面不會很暗。

【20100406】

請假。開車上台北,走二高,到新竹再轉接一高。回家之前先去拿之前訂好的電波鐘($2800)。

【20100406】

上班了,事情很多。

【20100407】

忘記做什。

【20100408】

晚上一點睡,結果被老婆爬起來碎碎念。

【20100409】

託網路的便利,不用再花時間去保存一些實體的CD/DVD,或整理電腦上的MP3。
看youtube的 TubeRadio http://www.tuberadio.fm/tuberadio.asp
聽歌的 愛聽 http://m.mop.com/

免費防毒軟體 小紅傘 http://briian.com/?p=533

【20100410】

早上睡的還蠻飽的。

【20100411】

51停課。

【20100412】

上班,突然整個人感覺很倦怠。到底工作的意義是什麼呢。

【20100413】

心情不好,整個人很累,十點多就睡了。

【20100414】

俄語歌

吳奕芳 聖彼得堡藝術理論史組碩士/列賓藝術理論史組博士http://www.ncku.edu.tw/~ioas/new/htm/fangwork.htm

【20100415】

N/A。

【20100416】

公司除蟲,東西要收起來。 (結果有人OT,除蟲順延)
很忙的一天。

【20100417】

忘了在忙什。

【20100418】

下雨,都過清明節了,天氣還不太穩定。

【20100419】

禮拜五 Linux 那邊遇到一個usb的issue,但我們的 os 沒問題的本來要叫我trace 我們 usb 那邊的 code,不過今天聽說他們解掉了,真高興,讓我省掉很多時間。(聽說是多上了一個不穩定的patch)。

【20100420】

查bios是否smi動作是否正常,可以用我們的工具帶參數改header可以先模擬bios的動作。忙的很累,時間到就先回家了。

【20100421】

查vbios那邊給的mode是否正確。騎機車帶老婆去大直圖書館看書。

【20100422】

多了一位同事幫我的忙,工作進度快了許多。心情也好一點了。
公司聚餐這次又去台北98那邊的披薩店,已經去兩次了。 老婆跑去大直圖書館看書,傳簡訊說他很喜歡那邊。

【20100423】

爸媽早上開車來台北。

【20100424】

帶爸媽去大湖公園走走,順便問問大湖國宅的房價。目前那邊一坪約33萬。
把前幾天因為太重而掉下來的電波鐘用釘子固定好,上次太重掉下來,幸好只有表面玻璃碎掉,和老婆用保鮮膜取代。

【20100425】

爸媽早上開車回南部。

【20100426】

公司很忙。

【20100427】

公司很忙。我們的ATA/Ahci Driver好像有問題。有台機器硬碟會認不到。
Win7在安裝時,只會在當時的模式(ide/ahci)只安裝當時的driver,若安裝完之後改成另外一個模式,Win7會crash(這問題好像從vista就有了)。

【20100428】

下午請假去大直營運站辦可攜號碼轉移。老婆看上一款手繪風手機。

【20100429】

海平面上升台北市淹水狀況http://flood.firetree.net/?ll=24.1066,122.6953&z=10&m=14&t=1

【20100430】

同事幫忙解了AHCI的問題。
幫媽媽辦了LG Lollipop GD580,買回來之後才發現原來有內建Google Map。

【備忘】

【PHP】一些PHP程式


php for windows http://windows.php.net/download/(VC9 x86 Thread Safe)

  1. 上傳檔案 http://www.w3schools.com/PHP/php_file_upload.asp
    1. 要在與程式同一個目錄創建upload 這個目錄並設成755,就會把上傳的檔案搬到 upload 這邊。
    2. $_FILES["file"]["size"] < 120000 就是限制檔案大小大約 120k bytes。
  2. 驗證碼 http://jax-work-archive.blogspot.com/2007/11/php.html
    1. 記得要指定所要使用的字型名稱與路徑。

【Debug】

  1. Xdebug http://www.xdebug.org/download.php

【FileZilla】Ftp 傳輸軟體


FileZilla http://filezilla-project.org/

優秀的檔案傳輸軟體,不過用慣了CuteFtp/Flashfxp,總覺得下面紅色框框的地方是多餘的。
 image

檢視 | 本地樹狀目錄/ 遠端樹狀目錄 的打勾取消,下面就是取消之後的狀況。

image

【BMP】以WinHex/PHP解析bmp


【目的】

  • 利用WinHex/Php解析基本的BMP格式。

【準備】

  • 使用小畫家繪製兩張16x16單色bmp格式的圖。
    一張全部為黑(black.bmp),一張全部為白(white.bmp)。
    image image
  • 先打開BMP File Format(BMP.tpl)(http://www.x-ways.net/winhex/templates/index.html),將內容先存入剪貼簿,抄錄如下
    template "BMP File Format (with Palette)"
    
    // Template by Khomenko Volodymyr, Ukraine.
    
    description "Structure of a BMP image file"
    appliesto file
    
    requires 0x00    "42 4D"     // 'BM'
    
    begin
        section    "BMP File Header"
            read-only char[2]    "BMP_ID"        // 00
            uint32    "File size"                // 02
            uint32    "Reserved"                 // 06
            uint32  "ImageDataOffset"            // 0A
        endsection
    
        section    "BMP Info Header"
            uint32    "HeaderSize"               // 0E
            uint32    "Width"                    // 12
            uint32    "Height"                   // 16
            uint16    "Planes"                   // 1A
            uint16    "BPP"                      // 1C
            uint32    "CompessionMethod"         // 1E
            uint32    "ImageSize"                // 22
            uint32    "XPixelsPerMeter"          // 26
            uint32    "YPixelsPerMeter"          // 2A
            uint32    "PaletteSize"              // 2E
            uint32    "ColorsImportant"          // 32
        endsection
    
        section    "Palette(If PaletteSize=0 then no palette)"
            numbering 0
    
            {
                byte "B[~]"
                byte "G[~]"
                byte "R[~]"
                byte "A[~]"
    
            } [PaletteSize]
        endsection
    end

【步驟】

  1. WinHex本身沒提供解析bmp的能力,要加入這種樣板。
  2. 打開WinHex(目前我是用v15.4)。
  3. View | Template Manager(Alt+F12) | New
    image
  4. 貼上剛剛存入剪貼簿的內容。Check Syntax | Save | Close。 
    image
  5. 這是white.bmp mapping結果,基本資料以32bits(資料+Padding)一組,目前是
    16bits(0xFF) 加上 16bits(0x00,Padding)。16x16的圖剛好是 0x3E~0x7D共64bytes(橙色框框)。
    image
  6. 另外根據 Bitmap data(http://en.wikipedia.org/wiki/BMP_file_format),
    有兩個地方是特別要注意的。
    image 
    6.1 資料排列方式是左下開始到右上,而不是一般常說的右上到左下
    6.2 Pixel是 BGR 排列,而不是一般常說的 RGB
    6.3 24Bits點陣圖 的話就是每個Pixel為 8(R) + 8(G) + 8(B)=24Bits
    6.4 由於會需要alignment,所以會補00 00(3C,3D)
    6.4 所以上面的圖一張就是
    (1,0) Red (00,00,FF)
    (1,1) White (FF,FF,FF)
    (0,0) Blue (FF,00,00)
    (0,1) Green (00,FF,00)

  7. 如果一直這樣看Raw Date的話,實在是有點麻煩。嘗試用php/imagecolorsforindex(ImageColorAt)來解析,但是由於php無法讀取bmp檔,所以先用小畫家將剛剛的檔案存成 test.png。
    <?php
    
    // open an image
    $im = imagecreatefrompng('test.png');
    
    // get a color
    for ($x=0;$x<2;$x++)
    {
      for ($y=0;$y<2;$y++)
        {
          $color_index = imagecolorat($im, $x, $y);
          // make it human readable
          $color_tran = imagecolorsforindex($im, $color_index);
          // what is it ?
          echo("XY[$x,$y]");
          print_r($color_tran);
        }
    }
    ?>
  8. 結果排列順序和我意料不同(x/y 和上面的表現方式不同,看來是一排一排讀),目前先留下記錄。
    $php dump.php 
    XY[0,0]Array
    (
        [red] => 0
        [green] => 0
        [blue] => 255
        [alpha] => 0
    )
    XY[0,1]Array
    (
        [red] => 255
        [green] => 0
        [blue] => 0
        [alpha] => 0
    )
    XY[1,0]Array
    (
        [red] => 0
        [green] => 255
        [blue] => 0
        [alpha] => 0
    )
    XY[1,1]Array
    (
        [red] => 255
        [green] => 255
        [blue] => 255
        [alpha] => 0
    )

【參考】

  1. WinHex 範本(模板)分享!
    http://jay-fva.blogspot.com/2010/02/winhex.html
  2. 點陣圖(Bitmap)檔案格式
    http://crazycat1130.pixnet.net/blog/post/1345538
  3. BMP file format
    http://en.wikipedia.org/wiki/BMP_file_format
  4. YUV
    http://zh.wikipedia.org/zh/YUV
  5. PNG文件結构分析
    http://www.elevatorsx.com/news.asp?Rep=NaN&id=126840
    http://www.elevatorsx.com/news.asp?Rep=NaN&id=126841
  6. The GIF File Format With C
    http://www.elevatorsx.com/news.asp?Rep=NaN&id=100089
  7. 影像處理上課資料
    http://web.meiho.edu.tw/~x00002174/95_2Course.htm
  8. WinHex
    http://zone-soft.com/index.php?newsid=1079
  9. 以php解析 bmp
    imagecreatefrom[BMP] http://www.webdeveloper.com/forum/showthread.php?t=194194

【TWEWinner】寶來點精靈


image

【安裝】

  1. 進入點精靈環球通頁面(http://www.polaris.com.tw/Finairport/Chn_4/Chn_4_4/)
  2. 選擇快速下載免安裝版
  3. 照著提示安裝。

【憑證申請】

  1. CA到期,點精靈會提是申請。連到指定網站,並確定檢測OK。 
    作業系統那一項的偵測有時會秀逗秀逗,只要確定有裝即可。
    image
  2. 跟著步驟,就可申請到CA(中間若有問題,可多試幾次)。
    image
  3. 最後選擇匯出給點精靈用。
    image  

【憑證匯入】

  1. 點兩閜所備份的憑證檔案(檔名通常是 你的id_到期日期)。
  2. 出現下面視窗。
    image
  3. 照著提示安裝。
    image
  4. 如果當時匯出時有密碼,就填入當時設定的密碼;反之則直接按 下一步。
    image
  5. 接下來就照著系統出現的提示走就可以了。
  6. 詳細說明參考: 相關連結/電子憑證管理中心/CA匯出匯入操作。
    image

【Grub4dos】Boot Menu


grub4dos http://code.google.com/p/grub4dos-chenall/downloads/list

  • menu.lst
    image 指定的路徑以根目錄為主。

【參考】

【Image2Lcd】圖片點陣像數提取工具


Image2Lcd/Img2Lcd

可以輸出 .c/.h 檔給單晶片使用。

image

【其他】

  1. Bitmap2lcd(看起來功能蠻強的)
    http://bitmap2lcd.com/pages/en.html
  2. uc/Gui(看來這是rtos的gui比較正規的寫法)
    http://www.ucgui.com/
    http://tw.myblog.yahoo.com/blue-comic/article?mid=80&next=37&l=f&fid=14
  3. How to put a bmp on an lcd
    http://www.edaboard.com/ftopic49565.html
  4. zimo21
    http://www.pudn.com/downloads63/sourcecode/others/detail219318.html
  5. FastLCD
    http://www.microchip.com.tw/modules/newbb/viewtopic.php?topic_id=5002&forum=7&post_id=19214

【Font】TTF向量字型


字型類與圖案下載。

【Self Image】Usb Dongle對拷


Self Image http://selfimage.excelcia.org/

但記得兩個usb dongle對拷的時候,來源盡量比目的地的容量為小。
如果是複製Linux distributions(ex. Ubuntu)的話,記得更新grub menu 的UUID並寫到MBR。
Linux command for UUID
  • vol_id
  • hdparm
  • blkid
    $ blkid /dev/sda1
    /dev/sda1: UUID="9dc5cc41-e30b-44e5-a7ad-f19ef96373b2" TYPE="ext4" 

【其它】

【ADS】電磁模擬軟體


協助RF工程師的2D電磁模擬軟體。再研究。

同學說,就功能面(強大)而言,ADS 就像 CPU, microwave office  就像 ucontroller 。基本上 rf 觀念還是要熟悉,否則還是 garbage in garbafe out ,自己在算什什都不知道。

【U4226B】電波鐘


【參考】

  1. 基于PIC单片机的电波数码显示时钟的设计
    http://www.c51.cn/pic/picyy/200708/6395.html
  2. TEMIC/Atmel U4226B (Time-Code Receiver with Output )
    http://tw.ic-on-line.cn/IOL_U4226B/PdfView/458215.htm
 

Ed32. Copyright 2008 All Rights Reserved Revolution Two Church theme by Brian Gardner Converted into Blogger Template by Bloganol dot com