2010年1月16日 星期六
HW8
HW4
這次作業是也是讀取讀片。可是跟第三次不太一樣的是,我們這次是用一個一個畫素點讀取在重新輸出的方式顯示。意思就是我們會從圖片檔的最左上方的畫素點開始讀取,讀一個就輸出一個。
這次也會用到上一次的那三個指令
一樣先用fopen開啟檔案,再用fseek移動游標,最後使用fread讀取
因為是一個一個讀。所以需要用迴圈的方式寫。如下
for(i=0;i
{
fseek (imBMP,offset,SEEK_SET);
fread (bSize, 1, 3, imBMP);
offset+=3;
Image1->Canvas->Pixels[i][j]=(TColor)RGB(bSize[2],bSize[1],bSize[0]);
}</IIMAGEWIDTH;I++)>
HW5
這次的作業是將老師的金龜子.gif圖的調色盤讀取出來再進行顏色排列。老師上課有講過,GIF檔的特色就是將一張圖片所需要用到的顏色直接編成一個調色盤。你用256色的就會有256個顏色,128的就是128,24bits的就是有24bits那麼多的顏色。調色盤決定後,圖片所有的顏色都會從調色盤取出。這樣的優點是可以縮減檔案大小,因為這樣就不用去記憶每個畫素點的顏色值了。但缺點是在顏色的顯示上會失真,不適用顏色太多的圖片。
看~就是那張圖!!(遙指)
基本上只要你不是色盲應該都可以很清楚的看到這張圖主要是由深綠色所組成的。他的其他部位則是有點帶點土黃色暗褐色的感覺。還有陰影部分就是黑灰白三色去配合出來的。
所以由程式解析他的調色盤就是以下這結果↘
最後再由明暗度排列會變成這樣
排列過後,較深較暗的顏色都在左上方。依序排列最右下方的就是最亮的白色了。
HW3
這次作業的主題是有關 fopen,,fseek,fread 這幾項指令
首先是我的程式結果
由於我的程式是照著同學的教學一步一步做出來的
所以其實對於指令的作用在幹嘛不是非常清楚…
為此我特別上網研究了一下這三個指令
---------------- 分隔線 ----------------
fopen:
開啟檔案或者 URL。
語法: int fopen(string filename, string mode);
傳回值: 整數
函式種類: 檔案存取
這個指令主要是是用來開啟檔案用,也可以用來開啟網頁。它是將內部游標移動到欲開啟的檔案處做開啟的。由他的指令語法我們可以知道,藉由輸入正確的檔案名稱即可開檔。後面的mode是所謂的開啟模式,輸入不同的代號有不同的開啟方式。
- 'r' 開檔方式為唯讀,檔案指標指到開始處。
- 'r+' 開檔方式為可讀寫,檔案指標指到開始處。
- 'w' 開檔方式為寫入,檔案指標指到開始處,並將原檔的長度設為 0。若檔案不存在,則建立新檔。
- 'w+' 開檔方式為可讀寫,檔案指標指到開始處,並將原檔的長度設為 0。若檔案不存在,則建立新檔。
- 'a' 開檔方式為寫入,檔案指標指到檔案最後。若檔案不存在,則建立新檔。
- 'a+' 開檔方式為可讀寫,檔案指標指到檔案最後。若檔案不存在,則建立新檔。
- 'b' 若作業系統的文字及二進位檔不同,則可以用此參數,UNIX 系統不需要使用本參數。
fseek:
移動檔案指標。
語法: int fseek(int fp, int offset);
傳回值: 整數
函式種類: 檔案存取
這個指令是移動內部檔案的游標,藉由移動游標改變讀取位置。但如果由fopen開啟網址類的檔案,此指令不能用。
fread:
元組的方式讀取檔案。
語法: string fread(int fp, int length);
傳回值: 字串
函式種類: 檔案存取
此指令輸入後可以讀指定長度的位元組或直接讀到檔案結尾。
---------------- 分隔線 ----------------
這三個指令其實就大概是這樣。不過,這類型的指令不只這三個。還有flock(鎖住檔案)、fpassthru(輸出所有剩餘資料)、fputs(寫到檔案指標)、fwrite(二進位位元方式寫入檔案)...等等。似乎這類型 f 開頭的指令都是在進行檔案的存取,不論讀取或輸出。
2009年10月22日 星期四
2009年10月8日 星期四
HW1
一開始是因為對多媒體很有興趣所以選了這門課
實際上過課程之後
發現教授所教學的內容不單單只是數位多媒體"概論"
為了日後教學上的方便
教授另外介紹了套簡稱為BCB的程式
這套程式似乎是原本拿來撰寫視窗程式所用的
教授好像要我們日後運用這套程式寫個可以分析多媒體資料的小程式
藉由這個小程式讓我們更加了解多媒體資料裡頭組成
嗯~所以這次的作業就是有關BCB程式的使用心得
首先,這是BCB剛開始的啟動畫面
這套程式把視窗程式設計變得像是在畫一幅畫的感覺
我就稍微介紹一下各個版面的用途
1.中間那塊類似於畫布的東西
我們可以在上面自由排版
做出我們想做的視窗程式面貌
2.上面有一排元件列
裡頭放著各式各樣程式內建的元件
就像是調色盤一樣
我們可以在裡頭選擇想要用的元件直接使用
相當方便,相當好!
3.左下方一整排的就是各個元件的細部內容
元件的設定基本上都在這了
4.左上方則是檔案總管之類的東西
整理所寫過的每個分頁
首先,程式的第一個練習
是讓我們開個圖檔並且讀取滑鼠所在的X,Y座標
並顯示所在畫素點的RGB值(紅,綠,藍所占比例)
開完圖檔後
發現,這張圖好像開的不是很完整
原來,我左邊的AutoSize是關閉的狀態
所以他就依照我一開始給的圖區大小開檔
並不會做縮放的動作
我把AutoSizee改為Ture以後
圖區就會依檔案大小作縮放了
之後教授要我們利用
MoveTo(); LineTo();
這兩項指令,在開啟圖片後可以自由的畫線
這是執行結果
我只要用左鍵選取起始點
就可以再用右鍵拉出一條從左鍵道右鍵的直線了
以上這些是我還記得的部分
教授上課另外還教過了
如何分別設定左鍵右鍵的個別功能
以及如何設定畫筆顏色
這兩個部分實在是有點忘記要怎麼做...
因此我現在做不出來(汗)
下次上課我會努力的把所教過的東西都記起來的
希望不要又忘了