顯示具有 96360296 林鼎鈞 標籤的文章。 顯示所有文章
顯示具有 96360296 林鼎鈞 標籤的文章。 顯示所有文章

2010年1月15日 星期五

HW8

因為現在是大三,去年看同學修課的時候,要去看很多展覽,還要訂雜誌,反而沒什麼作業,所以今年選這課原本也以為是這樣上,結果老師改變上課方式,其實學的東西也不算少,只是BCB用到的東西感覺不夠多,然後影像佔的比重太大,造成音樂格式的部份上沒多少學期就要結束了。影像的部份,最基本就是學到開圖跟一些處理,例如轉灰階或是使用bcb內的Pen來做畫,可惜那部份老師沒有上得很深入,比較注重在檔案的格式和內容,所以每種圖片格式的檔頭都有很多資訊,檔案大小、長寬、和它所儲存的格式、還有調色盤,以後寫程式如果需要用到就很容易上手,因為都是差不多的觀念,讀檔的做法算是弄得滿熟的。音樂格式部份就真的沒上到什麼,也是介紹了檔頭除此之外沒有了,剩的只有老師叫我們自己去試試看能不能對音樂做一些處理。另外有買了一本書,這本書非常的厚,裡面東西很多,但課程上有用到也只有開學那幾週,雖然自己在寫程式的時候是滿好用的,不過就是太大本了點,真的很像在用辭典,以後老師如果能多用課本上的東西來教大家我覺得也是不錯的,至少有書看大家會比較好懂。大致來說,我覺得花時間修這門課有學到東西,最重要就是讀檔的概念,因為我上視訊通訊導論的課也有用到,所以在做那門課的專題的時候就比較得心應手,也算是因為數媒概論這門課先幫我打了個基礎。

HW6


這次的作業是讀取WAV檔,

前面讀檔頭的動作跟讀BMP大同小異,

首先要先找到WAV的檔頭包了什麼東西,

整塊檔頭有什麼東西相信很多同學都PO了,

這邊我只列出我有用到的地方,

第一個當然就是檔案大小,位置在4,大小為4bytes,

再來是檔案類型,位置在8,大小也是4bytes,

不過檔案類型我也會有類似前面作業的問題,WAVE後面接了一些亂碼,

這個我一個一個字元去看都沒問題,可是整個印出來就是會有後面的東西,

真的不知道是哪來的,老師可以幫我看一下嗎。

char cB[4]={0,0,0,0};

fseek (imWAV,8,SEEK_SET) ;
fread(cB, 4, 1, imWAV);
Memo1->Lines->Add("檔案類型:");
Memo1->Lines->Add(cB);

我的程式裡是這樣寫的,讀出來就會變如圖所示。

第三個是Channel,位置在22,這個只有2個bytes,

最後是取樣率(Sample Rate),位置在24,4個bytes

我只有簡單拿幾個示範一下而已,

反正就是讀檔頭,其他有需要再加上即可,

基本上這作業只要之前讀bmp有認真做就不會很難,

幾乎是一樣的東西。

另外有加檔名上去,

程式裡是這樣寫的,Memo1->Lines->Add(OpenDialog1->FileName.c_str());

但是這樣出來會是絕對路徑,想請問老師有沒有辦法只取檔名就好?

HW5



這次的作業也算是讀檔,

只是這次變成讀GIF,GIF的檔頭跟BMP比起來算是簡單很多,

GIF識別、大小尺寸、調色盤,

然後最後面塞個3B當做檔尾結束。

首先點選右上角的讀取GIF調色盤,

讀完之後會如上圖所示,

這還是未排序的。



點擊由亮到暗之後就會如上圖所示,

從最亮的開始排,

至於亮度是怎麼判斷的,

就是使用轉灰階的方式,

三種顏色各乘上特定數字加起來的結果去排序。



另一個按鈕由暗到亮,

做法一樣,只是改個順序而已。

這次作業其實不好寫,

一開始就算會讀圖也不知道怎麼畫出來,

看了老師的範例程式才知道要自己去弄一個間隔讓他隔開,

才不會擠在一起,也才變成跟老師圖上一模一樣的格式。

HW4



這是第四次作業,跟第一次一樣是開圖,但在第一次作業我們是使用BCB裡的開圖元件只要選擇檔案他自然就會去讀資料,這次我們做的是自己寫程式讀檔一個一個點畫上去。

首先點選視窗上的Drafting,待電腦跑完會出現如下面的圖

結果看起來是跟第一次沒什麼不同的,但過程卻差很多。

寫這次程式會用到fopen、fseek、fread,首先就是讀檔頭的資料把資訊show出來,但這邊不知道為什麼用OpenPictureDialog的話檔頭可以顯示BM很正常,但一樣的作法使用在這邊就會如上圖一樣,後面出現一串亂碼,弄了很久還是不知道怎麼解決。

讀完檔頭之後就是開始讀圖的內容,也就是x座標的三種顏色,一個接一個畫上去,這邊都是重複的動作便不再多做說明。

2009年11月5日 星期四

HW3


繼上次教的fopen,fseek,fread等函式,這次終於要來實際使用了,

fopen就是把檔案讀進來,

fseek則是指定指標目前所在的位置,

fread是將目前所在的資料讀進來,

老師用了bmp的檔頭當做示範,

前兩個byte是檔案的類型,像bmp就是BM,

接著有很多資料,這裡只取它的大小、寬度、高度來看,

這些資料還要經過換算才是我們一般所看到的檔案大小,

不過上次上課最後老師教的一次讀完我沒有聽得很懂,所以我不會用那個struct來做。

這次寫的程式比較沒有什麼問題,因為寫法都差不多,會一個以後就幾乎都寫得出來了。



更新程式介面,

與原先的比較加了水平解析度與垂直解析度上去,

原先是不會算這兩項數值,

經過同學指導之後知道要把拿到的資料要去除以英寸計算,

所以就加上去了。

2009年10月22日 星期四

HW2

這次作業是把圖片轉成灰階儲存起來,而轉成灰階有兩種方法(R+G+B)/3和0.299*R+0.587*G+0.114*B,

怎麼看都是前面的加起來除以3比較好記,

所以在做的時候當然是選用這個方法來做,

一開始不知道怎麼把第一張圖轉到另一張圖,

後來只能用一點一點畫上去,然後就要先記錄第一張圖的長寬再一點一點抄過去,

圖像的格式因為上課有看老師做過了,所以這部份就比較沒有困難。



首先點擊Open會出現如上圖,選擇要開啟的檔案,



開啟完成會如上圖顯示,接著點選"轉換灰階"讓圖片依照上面所說的方法去轉成灰階。



完成會如上圖顯示。接著如下圖點選Save





最後會存在與開啟檔案的同一個資料夾內,如圖顯示,檔名固定為"PicGray.bmp"

2009年10月7日 星期三

HW1


繼上週的showmessage之後,這次教的東西多了許多且也複雜了不少,

一大堆的事件欄剛開始還搞不清楚哪個對應到哪件事情上,

經過老師上課慢慢用過幾個之後,類似的也能看得懂了,

現在問題就在有時候程式碼不知道該寫在哪個物件或事件裡。

然後BCB的物件非常的多,第一次使用看得眼花撩亂,類別又好多種,

目前僅僅用過其中幾種而已,也難怪課本會這麼厚厚一本了。


這次作業程式是開圖檔,而且是使用BCB內的元件,

所以讓程式開啟DIALOG然後選完要開啟的檔案就結束了,

因為是用元件所以我們可以很輕鬆的開啟圖片,

如果要自己讀資料去顯示圖片的話就要一個一個點去讀它,這邊在第四次作業有寫到

另外還有顯示座標、滑鼠目前所指的位置的三原色,也可以讓顏色顯示出來,

這些都是老師就邊上一些我們就邊做一些,所以這段程式都還跟得上在做什麼,

最後還有使用Pen的功能讓滑鼠可以在點擊的地方畫線,

第一次使用BCB寫程式其實是充滿新鮮且有趣的。