More servicesWindows Live
HomeHotmailSpacesOneCare
 
MSN
Sign in
 
 
Spaces home  Richard S.R. HanPhotosProfileFriendsMore Tools Explore the Spaces community

Richard S.R. Han

Early to bed and early to rise makes a man healthy, wealthy and wise. ─ Benjamin Franklin
7/19/2008

當代的儲存設備

其實這篇只是要紀念我買了一個2.5吋的外接式硬碟,最近有購買需要,順便做了一點功課,記得以前買3.5吋 20GB IDE還要$2500的年代,跟現在買的這顆 2.5吋 320GB SATA II,功能跟實用性相差甚大,但是價格卻已經相差不到幾百元,當然更不用說CPU進步的幅度還有其他裝置的跳躍式發展,七年前因為不懂事唸了資管系,就此打開我對電腦的世界,從懵懵懂懂,到現在樣樣半杯水的程度,大概只能稱的上是還沒有跟現代社會脫節,不過話說回來,現在動輒幾百GB的硬碟,還有超大容量藍光燒錄機,跟一大堆免費又好用的網路空間,真的是改變了不少當代人們的生活模式,再加上養動物(p2p)進入障礙極低,不少人養到硬碟爆炸,再去買新的硬碟繼續他的動物事業,只能說是稀鬆平常。

如果說你看到硬碟售價,可以讓你覺得便宜到想掏錢出來買,那恭喜你跟我一樣是個老人
如果說你看到硬碟快不夠用了,那也恭喜你現在硬碟很便宜,可以快去買一個新的來擴充

不過,我買新的硬碟,是要做備份,日子一天一天過,但是硬碟有壽命的,通常硬碟3~5年就有可能會慢慢出現一些徵兆,當然有些硬碟連說再見都沒有,就等你去收屍,大家想像如果真的有那麼一天,你的損失有多少?? 這問題要問各位,至少我覺得光是數位照片就無價,所以摟,趕快把你照片做個備份吧!!  不然去申請無容量限制的相簿努力往上塞,相信我,花這點時間跟金錢,絕對是直得的。

記得之前看到有人PO文說某某人硬碟壞軌,研究所兩年辛苦的畢業論文資料放再硬碟中沒有其他備份,後來請專業人士花數萬元救資料,而且不保證一定救的回來,就知道這有多重要........

好吧!   最後附上一燦坤的DM,跟其他商家比較後,發現真的很便宜,可惜只有今天!  




7/14/2008

2008-06-28 MSP Year End Party (台灣微軟學生大使年終Party)

好吧!  該寫的東西還是要補 (欠太久了)
記得五月多的時候,LJ就有發Mail統計大家希望party的時間,依照慣例,我都會排除萬難出席這場好康到極點的宴會,怎麼會這麼說勒?  大家就看圖聽故事吧!!!

6/28那天,我跟POU約在MRT台北市政府站,要一同參加,但是好死不死再出捷運站時,竟然給我噴起雨來,此時此刻,我拿起手機Elain求救,尋求救兵拿傘來拯救我們,就在Elain問大家,但是卻沒什麼人要鳥我們的尷尬情況,終於有人不忍心答應幫忙,(這時我終於知道我人緣不太好 哈哈),這裡先感謝阿飄瞜~

00MSP Year End Party 003 01MSP Year End Party 097 02MSP Year End Party 004
          國泰金融大樓                       


好吧,來到熟悉的國泰金融大樓,看到看了不知道幾遍的Microsoft logo,感覺又回到一年前跟POU常常從高雄飆客運回台北上課的那些日子,剛進到聚集的地方,就看到好多人在那邊聊是非,想想在場的各位,從 好久不見的舊生一年前才面試近來新成員 ,相信此刻大家應該都是抱著愉快的心情,大家除了忙著填寫一些補助的資料之外,也在一旁打鬧,趁著這個時候我也趕快把該寫的東西寫一寫。

03MSP Year End Party 017 04MSP Year End Party 03705MSP Year End Party 036
                   小弟我                                                  她是MSP頭頭                                             POU

從開始的開幕影片(看到那些由我們完成的28場的校園講座,所組成的圖片回憶錄,只能用"感動"來形容)
接著是大夥的心得分享跟活動檢討(POU打頭陣,接著輪到我時,我竟然上台胡言亂語,早知道就準備小抄!)
最後就是獎金發送還有頒獎(我想此時每個人都爽哈哈,呆呆有xbox360,你看笑的有多開心)

06MSP Year End Party 08809MSP Year End Party 103
            爽翻的呆呆跟Elain                                                                     大合照

最後LJ也說了不少話,因為有預約燒肉店個關係,大家急急忙忙的拍照後就殺去西門町的熊一燒肉。

16MSP Year End Party 109 20MSP Year End Party 111
                   吃飯中                                                         時間緊迫                             

內行的都知道雄一燒肉只能吃兩個小時,因為我們到那邊時,時間只剩一半,所以接下來的事情,就是瘋狂的跟店員點肉,然後整盤灑下去,亂考一通,管他熟不熟就往大家的盤子塞,(希望他們回家都沒事情!) 咻咻兩下!  一個小時就過去了!  

反正其實有沒有吃飽也沒差啦! 接下來就是要去錢櫃的VIP包廂,VIP!!?? 就是在錢櫃中華新館坐電梯直達頂樓那位置! 只能說高檔,包廂內有鋼琴、四支麥克風、衣櫃、BAR台、還有一直在包廂聽你唱歌還會鼓掌的真人服務生,說實在話,有機會大家真的要透過關係來看看,因為感覺很爽....!!!!!

當然這裡還有一個重頭戲,就是要頒發這次MSP最大獎,法國巴黎遊一周,也就是跟著台灣的潛能創意盃代表隊伍一同去法國吃香喝辣,MS會包吃包住....哈! 實在是不錯,真恭喜阿財,這獎真的是實至名歸。

32MSP Year End Party 24033MSP Year End Party 17638MSP Year End Party 233
                 就走廊                                                倒膨大海的服務生                          最大獎得主阿財

sss
31MSP Year End Party 23936MSP Year End Party 184 37MSP Year End Party 141 

35MSP Year End Party 214
                                                                  從VIP室 往下看西門町

好吧! 第二節活動告一個段落,這一年下來,又是很多不同體驗,特別是這次的duty是我自己最不喜歡的部分,但收穫也是最多的一次! (No Pain No Gain. ) 好吧! 最後感謝各位MSP配合我的奪命連環摳,也感謝老大給我們的照顧跟教導,還有忍受我的固執跟執著,沒有MSP這些經歷,我可能會少掉很多很寶貴的經驗!    

Richard S.R. Han
微軟學生大使(MSP, Microsoft Student Partners)

7/3/2008

M9解體日記 (消失的光碟機)

早在第一次安裝VISTA的時候,前前後後安裝很多光碟相關軟體 (Nero、Alcohol 120、DAEMON...等等)
在不停的安裝跟反安裝的過程中,我實體光碟機消失不見了,當時花了不少時間找尋解答,不過當時VISTA剛上市,沒有這類文章資料,今天,我再一次搜尋 "光碟機消失" 等關鍵字,已經有很多解決方案,稍微整理一下發現,主要的問題就是VISTA跟NERO有衝突,也就是您的OS(XP or VISTA)搭配到舊版的NERO

       以下大概是幾個可行的方案(前提必須是BIOS有抓到光碟機):

  • 執行 regedit.exe
    找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E965-E325-11CE-BFC1-08002BE10318}
    刪除 UpperFilters、LowerFilters (有出現就刪掉)
    重開機
  • 打開裝置管理員
    刪除光碟機
    執行硬體變更掃描
    重開機
  • SFNightmare  & StarFuck 等軟體強制enable你的光碟機
  • 重新安裝你的OS

重點來了,以上方法我都嘗試過,但我的問題是BIOS根本就沒找到光碟機,我在猜想會不會是M9的光碟機鬆掉了,於是我開始拆解的我M9,拆著拆著,忽然發現光碟機是鬆開的,重新安裝後,真的就恢復正常哩! 

好吧,反正就順便整理!  做個紀錄!

5/13/2008

數位 雜誌 MagV

話說,我通常看雜誌的地點不是在圖書館就在複合簡餐店,大概偶爾會掏錢買本商周放到包包打發時間,不久前不知道看到誰的BLOG知道 MagV 這個網站,當時是免費看所有雜誌,不過數量不多,前陣子再次登錄的時候已經需要付費,我也就想說作罷不再光顧了!

沒想到當天晚上就收到他們客服的MAIL ,內容是下面這樣!

Subject: MagV客服回信,贈送序號免費閱讀MagV!!
您好,
這裡是摩達網客服中心,很感謝您昨天進入
www.magv.com.tw,並留下您的資料,想請問您是否在使用我們的付費機制時,發生任何問題,如果您願意回覆我們,協助我們理解您所遇到的問題,我們將贈送一個月的MagV序號,讓您免費閱讀MagV,期待您的回音
摩達網客服中心敬上

看起來是想用服務來拓展市場,於是我也列了一些可以改進的地方,果然在隔天,客服就寄一組序號給我用!  (誠信不錯)
奇摩子不錯,如果到時候真的可以一個月花小錢,看到我想看的雜誌,也許我很樂意付錢~   推一下給各位!

MagV

5/3/2008

影像處理(處理彩色、灰階、大小 、負片) C#

處理彩色圖片(C#)

System.Drawing.Bitmap img1 = new System.Drawing.Bitmap(@"C:/pic/original.jpg");

System.Drawing.Imaging.BitmapData bmData = img1.LockBits(new System.Drawing.Rectangle(0, 0, img1.Width, img1.Height), System.Drawing.Imaging.ImageLockMode.ReadWrite, img1.PixelFormat);

int stride = bmData.Stride;
unsafe
{
    int nOffset = stride - img1.Width * 3;
    System.IntPtr t = bmData.Scan0 ;
    byte* p = (byte*)(void*)t;               
    for (int y = 0; y < img1.Height   ; y++)
    {
        for (int x = 0; x < img1.Width   ; x++)
        {
            //決定圖片每一個Pixel的RGB值       ex: p[0] p[1] p[2] 共同決定左上角第一個pixel
            p[y * (img1.Width * 3 + nOffset) + (x * 3) + 0] = (byte)(0);          //blue
            p[y * (img1.Width * 3 + nOffset) + (x * 3) + 1] = (byte)(255);        //green
            p[y * (img1.Width * 3 + nOffset) + (x * 3) + 2] = (byte)(0);          //red                     
        }
    }               
}
img1.UnlockBits(bmData);

//決定檔案格式(jpeg,bmp,gif.....)
img1.Save(@"C:\pic\revise.jpg", System.Drawing.Imaging.ImageFormat.Jpeg); 

clip_image002[12]


處理灰階圖片(C#)

System.Drawing.Bitmap img1 = new System.Drawing.Bitmap(@"C:/pic/clown.jpg");

System.Drawing.Imaging.BitmapData bmData = img1.LockBits(new System.Drawing.Rectangle(0, 0, img1.Width, img1.Height), System.Drawing.Imaging.ImageLockMode.ReadWrite, img1.PixelFormat);

int stride = bmData.Stride;
unsafe
{              
    System.IntPtr t = bmData.Scan0 ;
    byte* p = (byte*)(void*)t;               
    for (int y = 0; y < img1.Height; y++)
    {
        for (int x = 0; x < img1.Width   ; x++)
        {
            //決定圖片每一個Pixel的灰階值(0~255)
            p[ y * img1.Width + x] = (byte)(255 - p[y * img1.Width + x]);                      
        }
    }               
}
img1.UnlockBits(bmData);

//決定檔案格式(jpeg,bmp,gif.....)
img1.Save(@"C:\pic\revise.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);           

clip_image002[14]

處理圖片大小(C#)
System.Drawing.Bitmap img1 = new System.Drawing.Bitmap(@"C:/pic/original.jpg");           
System.Drawing.Bitmap img2 = new System.Drawing.Bitmap(img1.Width *2, img1.Height*2 );

System.Drawing.Imaging.BitmapData bmData = img1.LockBits(new System.Drawing.Rectangle(0, 0, img1.Width , img1.Height ), System.Drawing.Imaging.ImageLockMode.ReadWrite, img1.PixelFormat);        
System.Drawing.Imaging.BitmapData bmData2 = img2.LockBits(new System.Drawing.Rectangle(0, 0, img2.Width, img2.Height), System.Drawing.Imaging.ImageLockMode.ReadWrite, img1.PixelFormat);  
       
int stride = bmData.Stride;
int stride2 = bmData2.Stride;
unsafe
{
    int nOffset = stride - img1.Width * 3;
    int nOffset2 = stride2 - img2.Width * 3;
    System.IntPtr t = bmData.Scan0;
    System.IntPtr t2 = bmData2.Scan0;
    byte* p = (byte*)(void*)t;                                  
    byte* p2 = (byte*)(void*)t2;

    for (int y = 0; y < img2.Height; y++)
    {  
        for (int x = 0; x < img2.Width; x++)
        {
             p2[y * (img2.Width * 3 + nOffset2) + (x * 3) + 0] = (byte) (255);     //blue 底色
        }
    }


    for (int y = 0; y < img1.Height; y++)
    {
        for (int x = 0; x < img1.Width ; x++)
        {   
            p2[y * (img2.Width * 3 + nOffset2) + (x * 3) + 0] = p[y * (img1.Width * 3 + nOffset) + (x * 3) + 0];
            p2[y * (img2.Width * 3 + nOffset2) + (x * 3) + 1] = p[y * (img1.Width * 3 + nOffset) + (x * 3) + 1];       
            p2[y * (img2.Width * 3 + nOffset2) + (x * 3) + 2] = p[y * (img1.Width * 3 + nOffset) + (x * 3) +2];                                  
        }                                    
    }
}
img1.UnlockBits(bmData);
img2.UnlockBits(bmData2);
//決定檔案格式(jpeg,bmp,gif.....)
img2.Save(@"C:\pic\revise2.jpg", System.Drawing.Imaging.ImageFormat.Jpeg );  

 clip_image002[16]

處理圖片彩色轉灰階(C#)   
System.Drawing.Bitmap img1 = new System.Drawing.Bitmap(@"C:/pic/original.jpg");

System.Drawing.Imaging.BitmapData bmData = img1.LockBits(new System.Drawing.Rectangle(0, 0, img1.Width, img1.Height), System.Drawing.Imaging.ImageLockMode.ReadWrite, img1.PixelFormat);

int stride = bmData.Stride;
unsafe
{
    int nOffset = stride - img1.Width * 3;
    System.IntPtr t = bmData.Scan0;
    byte* p = (byte*)(void*)t;
    for (int y = 0; y < img1.Height; y++)
    {
        for (int x = 0; x < img1.Width; x++)
        {
            //計算灰階值                       
double gray = 0.114* p[y * (img1.Width * 3 + nOffset) + (x * 3) + 0] + 0.587* p[y * (img1.Width * 3 + nOffset) + (x * 3) + 0] + 0.299* p[y * (img1.Width * 3 + nOffset) + (x * 3) + 0];

            //決定圖片每一個Pixel的RGB值   ex: p[0] p[1] p[2] 共同決定左上角第一個pixel
            p[y * (img1.Width * 3 + nOffset) + (x * 3) + 0] = (byte)(gray);          //blue
            p[y * (img1.Width * 3 + nOffset) + (x * 3) + 1] = (byte)(gray);         //green
            p[y * (img1.Width * 3 + nOffset) + (x * 3) + 2] = (byte)(gray);          //red                     
        }
    }
}
img1.UnlockBits(bmData);

//決定檔案格式(jpeg,bmp,gif.....)
img1.Save(@"C:\pic\revise.jpg", System.Drawing.Imaging.ImageFormat.Jpeg  );  

 

 

 clip_image002[18]

Ø 怎麼允許Unsafe程式碼?

Step1:開啟專案的 [屬性] 頁面。

clip_image003[8]

Step2:按一下 [建置] 屬性頁。

clip_image007[4]

Step3:選取 [容許 Unsafe 程式碼] 核取方塊。

Ø 如何加入參考 System.Drawing?

Step1:

clip_image009[6]

Step2:

clip_image011[4]

Step3

:clip_image013[4]

 

PS: 因為當助教的關係,所以去找一下C#怎麼直接利用指標去對印到每張圖片Pixel,讀出記憶體中的值!!
      本方法適用彩色圖片及灰階圖片!

View more entries
 
No list items have been added yet.