顯示具有 96363061 李冠緯 標籤的文章。 顯示所有文章
顯示具有 96363061 李冠緯 標籤的文章。 顯示所有文章

2010年1月14日 星期四

HW6

第六個作業是要將程式可讀進wav的檔頭資訊

並且把開啟的音樂檔資訊顯示出來

跟第4個作業比較起來有種異曲同工之妙的感覺

不過這個是音樂第四個是圖檔

首先當然還是先去wiki了解一下wav的檔案格式
(突然有種沒有wiki這堂課真的混不太下去的感覺)

wiki所查到的檔頭資訊

對於wav有基本的了解之後

再利用之前作業4的方法一個一個去窺探開啟wav的檔案資訊

甚麼時間長度 檔案大小 是不是立體聲 在我們面前

都不再是秘密 想要怎麼看就怎麼看 滿足我們的偷窺慾!!



附帶一提 老師在課程部落格上面所放的iTues連結

我也有去下載來試用(平常聽歌都沒很講究都很隨便的用內建的Media Player)

使用下來還蠻不錯的 操作很直覺化 值得推薦!!

HW8

上完了這學期的數位媒體概論後

發現和我原先所想的有點落差~~

一開始再選修這門課之前 一直以為是頗理論

會讓人想睡覺的課~~ 但沒想到實際的上課

情況則是有點理論和實作並進~~

這種感覺不錯!! 除了介紹基本的圖檔和音訊格式以外

老師也推薦了BCB這套軟體給我們親手下去寫

從一開始的開BMP圖檔到後來能夠觀看圖檔資訊

利用檔頭的方式開檔案還有用觀看檔頭的方式

就能夠先讓人了解這個檔案的觀念讓我最震驚~~

因為我從未想過能夠如此"看"檔案

和其他課比起來老師其實教學的速度並不算快~~

而且很明顯的可以感受到老師對我們的感覺就有點像

師父領進門 修行在個人~~ 其實大家都大學生了~~

而且又是學資工這門的 不自己下點功夫學習寫程式的技巧和經驗

這樣子真的永遠不會進步!! 雖說書又厚又大本

像字典一樣 而且這學期可能書的內容都不會全部上完

但這就是工具 以後自己有興趣時 就能夠再把它拿出來

看一看裝進自己的腦袋裡 學到的就是自己的 誰都搶不走!!

HW5

第五個作業要做的是

讀出GIF檔案中的調色盤資料並顯示出來

再針對讀取出來的調色盤資料 做明亮排序

看到題目就很有那種做第四次作業

要先了解BMP檔頭一樣 也要先了解GIF檔頭

有存放甚麼東西還有格式內容的特性等等

雖然老師上課有介紹過了 但學生總是健忘的

所以就去wiki了一下

發現中文版只是粗略介紹的文字介紹GIF的歷史和格式

優缺點之類 並沒有所要的檔頭資訊

英文版才有關於檔頭的資訊 真是恨自己少壯不努力

沒把英文學好!!

查到了關於GIF檔頭的資訊後(Wiki所介紹的GIF)

然後利用了這幾次作業都會用到的PSPad去看一下 指定的

金龜子gif圖檔的內容

(用PSPad查看內容)

抓到重點檔頭後就開始動工啦

配合老師網上給的怕我們做不出來的範例檔來修改

一開始利用老師的範例檔貪心的直接執行

就跑出一大堆error 原來是變數名稱沒改!!

改了許多變數名稱之後開心的執行下去

挖哩 畫面甚麼都沒有 一片雪白



研究一下 發現原來是讀檔頭的位置放錯了

要放13 Byte的位置我竟然給他亂填數字

幸好沒當機~~

最後持續的瘋狂修改 至少給我叫出了調色盤啦


但要怎麼做明亮的排序 又困擾我許久

後來想起在上課時好像有提到 氣泡排序法

又參考了像字典一樣厚的課本+Google了一下!!

好像可以用Sort來解決

用比較明亮度的方式 看是要由暗到明或亮到暗

只要修改"大於"或"小於" 都能輕鬆做到






弄懂之後就可以達到排序的效果!!

2009年11月29日 星期日

HW4


這次作業是要像第三次作業那樣將讀進來的

圖檔資訊顯示在C++ Builder的影像元件上但不要

使用BCB裡面提供的LoadFromFile的方式來讀檔

是要使用第三次作業有用到的fopen fread fseek的方式

來直接讀取圖檔的檔頭 讓讀進來的圖檔大小 圖檔長寬等都能顯示出來

在之前的課堂上老師有解釋了BMP檔案格式的特色

和BMP檔頭內的每個byte所提供的訊息

先使用fopen開啟所要使用的圖檔

透過fseek將指標指向我們要的檔頭資訊

再配合fread來讀取我們的檔頭訊息



就可以將開啟的圖檔資訊輸出在BCB的元件上

整體看起來也比之前HW3開啟圖檔時不斷跑出

圖檔的資訊的視窗來的簡潔有力

在做作業的期間一度忘了BMP的檔頭內所要讀取的有哪些資料

就使用老師之前推薦的PSPad這套軟體和wikipedia所查到的

BMP檔頭內容來複習 基本上只要前面幾次作業都有理解的話

這次作業還真的不算難~

2009年11月5日 星期四

HW3

在做這次作業的前幾堂課,老師先出了個問題給我們練習

要我們去想辦法弄會fopen、fseek、fread 的用法,沒想到

這次作業就出了相關題目給我們練習了~~ 也太刺激了吧

這次作業
是要讓我們熟悉如何從BMP檔案中讀取出相關

的圖片資料 所以想當然爾 一定要先了解BMP這種檔案

格式 所以去wiki查了一下BMP

果然有許多關於BMP的檔頭資訊




一開始開檔案的時候可以來判斷圖片的類型~~

檔頭的位元組#0~1 是用來儲存BMP標誌BM



接著是要顯示四位數字~~

不是很懂這四位數字的意思....

在wiki上查了查叫做Dword

是儲存在 位元組 #2-5 說是用來 保存點陣圖

也就是BMP的文件大小

檔案大小則是透過

int IFileSize = bSize[0] + bSize[1] * 256 + bSize[2] * 256*256 + bSize[3] * 256*256*256;

的方式來獲得



上面兩張是圖片的寬高~~

分別存在於檔頭的

位元組 #18-21 保存點陣圖寬度(以像素個數表示)

位元組 #22-25 保存點陣圖高度(以像素個數表示)。

很驚奇的體會 直接去看檔案的檔頭

讓我對"檔案"這抽象的東西又有更明白的"看法"!!

在wiki觀察BMP檔頭資訊的存放位置也有發現其他的資訊

例如影像的垂直和水平解析度也都可透過直接讀檔頭

的方式將這些數值叫出~~~

想必之後多加練習 也能像在一般的檔案上面按"右鍵"選內容

的方式去觀看檔案的資訊吧 真是有趣!!

不過fread fopen fseek雖有去問同學了但還是

沒了解的很詳細~~ 看來還得多下點苦功才行!!

2009年10月21日 星期三

HW2

這次作業是要將一個24位元的圖片轉換成8位元灰階圖片~~

並且要顯示出開出來的圖片是幾位元的圖片!!

自己試了很久也不斷的跑來作業園地

參考吸收大家是怎麼寫的

最後皇天不負苦心人 終於也給我擠出來了~~

真的是很有成就感


首先 先利用之前所教的open->opendialog打開網上抓取的BMP圖檔






使用了上課老師提到過的程式碼還有講過的

要轉換灰階影像要將原有圖片的每個點色彩值

通通都除以3 即可得到我們要的灰階效果



按下轉換鈕後圖片的灰階版本馬上跑出~~

看到這個成果心情很愉悅!!


雖然有成功的跑出轉換的結果

不過在執行的時候有發現程式有點小錯誤~

好像和AnsiString有關~~

個人猜想可能是和我所抓取的數值資料型態上有所錯誤吧~

但看不是很懂!!!

之後也有試了別張圖看看也發現一個很詭異的地方

不管讀進來是多大的圖 轉換的灰階都只有原圖的一部份

檢查程式碼後發現 原來是我粗心大意 在掃描原圖的點時

自動將原圖的高和寬都打上去了 難怪每次轉換後 都是上面

貼圖的兔子圖的大小~

2009年10月7日 星期三

HW1










上禮拜由於電腦教室的電腦一直當機+跑很慢
所以一直無法跟上老師進度
好不容易研究好一步驟
就跟老師的進度差了2.3回

所以私底下有請教同學
也感謝同學不吝嗇的指教

其實BCB真的還蠻有趣的
有時間一定會好好研究~~