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
好吧! 該寫的東西還是要補 (欠太久了)
記得五月多的時候,LJ就有發Mail統計大家希望party的時間,依照慣例,我都會排除萬難出席這場好康到極點的宴會,怎麼會這麼說勒? 大家就看圖聽故事吧!!!
6/28那天,我跟POU約在MRT台北市政府站,要一同參加,但是好死不死再出捷運站時,竟然給我噴起雨來,此時此刻,我拿起手機Elain求救,尋求救兵拿傘來拯救我們,就在Elain問大家,但是卻沒什麼人要鳥我們的尷尬情況,終於有人不忍心答應幫忙,(這時我終於知道我人緣不太好 哈哈),這裡先感謝阿飄瞜~
國泰金融大樓
好吧,來到熟悉的國泰金融大樓,看到看了不知道幾遍的Microsoft logo,感覺又回到一年前跟POU常常從高雄飆客運回台北上課的那些日子,剛進到聚集的地方,就看到好多人在那邊聊是非,想想在場的各位,從 好久不見的舊生 跟 一年前才面試近來新成員 ,相信此刻大家應該都是抱著愉快的心情,大家除了忙著填寫一些補助的資料之外,也在一旁打鬧,趁著這個時候我也趕快把該寫的東西寫一寫。

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


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

吃飯中 時間緊迫
內行的都知道雄一燒肉只能吃兩個小時,因為我們到那邊時,時間只剩一半,所以接下來的事情,就是瘋狂的跟店員點肉,然後整盤灑下去,亂考一通,管他熟不熟就往大家的盤子塞,(希望他們回家都沒事情!) 咻咻兩下! 一個小時就過去了!
反正其實有沒有吃飽也沒差啦! 接下來就是要去錢櫃的VIP包廂,VIP!!?? 就是在錢櫃中華新館坐電梯直達頂樓那位置! 只能說高檔,包廂內有鋼琴、四支麥克風、衣櫃、BAR台、還有一直在包廂聽你唱歌還會鼓掌的真人服務生,說實在話,有機會大家真的要透過關係來看看,因為感覺很爽....!!!!!
當然這裡還有一個重頭戲,就是要頒發這次MSP最大獎,法國巴黎遊一周,也就是跟著台灣的潛能創意盃代表隊伍一同去法國吃香喝辣,MS會包吃包住....哈! 實在是不錯,真恭喜阿財,這獎真的是實至名歸。



就走廊 倒膨大海的服務生 最大獎得主阿財
sss


從VIP室 往下看西門町
好吧! 第二節活動告一個段落,這一年下來,又是很多不同體驗,特別是這次的duty是我自己最不喜歡的部分,但收穫也是最多的一次! (No Pain No Gain. ) 好吧! 最後感謝各位MSP配合我的奪命連環摳,也感謝老大給我們的照顧跟教導,還有忍受我的固執跟執著,沒有MSP這些經歷,我可能會少掉很多很寶貴的經驗!
Richard S.R. Han
微軟學生大使(MSP, Microsoft Student Partners)
7/3/2008
早在第一次安裝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
話說,我通常看雜誌的地點不是在圖書館就在複合簡餐店,大概偶爾會掏錢買本商周放到包包打發時間,不久前不知道看到誰的BLOG知道 MagV 這個網站,當時是免費看所有雜誌,不過數量不多,前陣子再次登錄的時候已經需要付費,我也就想說作罷不再光顧了!
沒想到當天晚上就收到他們客服的MAIL ,內容是下面這樣!
Subject: MagV客服回信,贈送序號免費閱讀MagV!!
您好,
這裡是摩達網客服中心,很感謝您昨天進入www.magv.com.tw,並留下您的資料,想請問您是否在使用我們的付費機制時,發生任何問題,如果您願意回覆我們,協助我們理解您所遇到的問題,我們將贈送一個月的MagV序號,讓您免費閱讀MagV,期待您的回音
摩達網客服中心敬上
看起來是想用服務來拓展市場,於是我也列了一些可以改進的地方,果然在隔天,客服就寄一組序號給我用! (誠信不錯)
奇摩子不錯,如果到時候真的可以一個月花小錢,看到我想看的雜誌,也許我很樂意付錢~ 推一下給各位!

5/3/2008
處理彩色圖片(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]](http://k2b0pq.bay.livefilestore.com/y1pMYtcp3fHisalukZlaqcZOvmyipdYYC0UZOzx2hs1l9UOymZoUC8wlWPkt3BwUCiukwI6J41CknYFfjVAr5eX9S-4UcBIuanc?PARTNER=WRITER)
處理灰階圖片(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]](http://k2b0pq.bay.livefilestore.com/y1pMYtcp3fHisYzdLtk49GZeBxTNAQ4_y4Lh40i8OKA4EUJKiUnZWeOFVk9ok3wCZJ8wwJS0FP1xfPYU5PPS0KdC_XBtXXctslY?PARTNER=WRITER)
處理圖片大小(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]](http://k2b0pq.bay.livefilestore.com/y1pMYtcp3fHisakfFkf5u-1FkNTQDQikFgqDJMCgC62EwKRAZdgxxJ7wKpk_OrYg-E9Ud9CWGlnfk6ppCkC-K4d2KdgprHptvuW?PARTNER=WRITER)
處理圖片彩色轉灰階(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 );
Ø 怎麼允許Unsafe程式碼?
Step1:開啟專案的 [屬性] 頁面。
Step2:按一下 [建置] 屬性頁。
Step3:選取 [容許 Unsafe 程式碼] 核取方塊。
Ø 如何加入參考 System.Drawing?
Step1:
Step2:
Step3
:
PS: 因為當助教的關係,所以去找一下C#怎麼直接利用指標去對印到每張圖片Pixel,讀出記憶體中的值!!
本方法適用彩色圖片及灰階圖片!