2010年12月7日 星期二

HW2

HW2-1 GIF動畫製作

這次的作業是使用 Microsoft GIF Animator 做一個動態的圖片
但上網去找圖之後發現幾乎都是JPG格式
所以載下來的圖要先轉成GIF格式
但是JPG轉成GIF之後畫質會變差
因為GIF只能顯示256個顏色
再來就是用小畫家把這整張圖切割成八小格再存成GIF檔

檔案要存成GIF檔是因為Microsoft GIF Animator只能讀取GIF檔
而且只有GIF這種格式才能顯示動態圖片
再來要調整顯示時間
我設定是25(也就是0.25秒顯示一格)
還要把畫面顯示方式改成重繪背景
不然當下一張顯示時
會看到上一張的影子在下面
這樣就不好看了

以下是我的成品囉!!!
這次的作業很多人都把圖片放在網路硬碟
但是圖片放在網硬1.2天就會掛掉
後來是同學教我把圖片放在Plurk
再上傳圖片的網址
這樣圖片就不會掛點了!
大家也可以試試這個方法喔


HW2-2 GIF動畫分析


第二次作業是用一個新的軟體來做
那就是PSPad
一開始開啟檔案看到這麼多亂碼
還真的不知道該怎麼分析
後來翻開課本研究一下
並且跟同學討論之後
就了解每個byte是有其代表的意思

這個軟體可以用來解析任何圖片檔的資訊
包括JPG檔、GIF檔......
他可以解析每個byte的存了些甚麼
例如這次作業的00000列的00~06
就是儲存這個檔案格式為GIF89a
PSPad真的是一個很方便的圖片解析軟體
而且它又免費呢!

而我在利用小畫家作解析時
相信大家都會遇到一個問題
那就是文字打上去之後
要確定沒有錯誤才可以點開
因為他不能再回去改字
或者可以按復原
但剛剛辛苦打得整段文字
就都會一起刪除掉~


HW2-3 GIF圖片顏色分析

這張圖片是我在新聞上找的
前一陣子被人爆料這個哆啦A夢蛋糕
一點也不像哆啦A夢 XD
所以這次的作業我就拿它來解析顏色吧

這次作業是要寫出一個程式
來把GIF圖檔的顏色都解析出來
用到的元件蠻少的
只有用到Lable、Opendialog、Image、Mainmenu
這四個元件而已
JPG圖無法顯示(檔案類型也顯示問號)
GIF可以正常顯示
而哆啦A夢這張圖抓下來原本是JPG檔
但是要先把它轉成GIF在放進程式中
不然程式會無法判斷這張圖片的檔案類型
也無法解析它的顏色
再來JPG轉GIF的時候
小畫家會跳出訊息
因為GIF最大色彩顯示只有256色
所以顯示的顏色會較JPG檔少
並且在完成之後
還在旁邊做一些圖片資訊
顯示檔案來源、檔案類型、圖片大小
可以讓使用者更快速得知圖片訊息

圖片解析之後也發現原來有些顏色
直接看圖片是看不出來的
要解析出來才知道
像我的圖片看不出來有黃色、紫色及綠色
但解析出來才知道原來還有這3種顏色呢!


HW02




完成品↓



這次的作業很有趣,
不過之前本身就有玩過GIF Animator這個軟體~
所以要做動畫時沒有覺得很陌生:)

第一排第一張是我已經用動畫做好的gif檔,
剩下7張是我放在畫格裡的圖,
自己用小畫家畫並且上色~想表現出一個很可愛的表情:)會眨眼~

嘴巴還會笑開開~臉也還會脹紅很可愛唷 哈
很好玩^^
----------------------------------------

----------------------------------------



將上圖的GIF動畫配合PSPad,跑出來的資料,所擷取的畫面↓




因為圖片被縮小了所以我們放大來看↓

 
用顏色標起的地方為GIF簽章檔名






用顏色標起的地方為電腦螢幕敘述






用顏色標起的地方為圖片高和寬 ↑

6400 → 0064(16) → 100(10)

方法 ( 16 進位轉 10 進位 ):

4 × 16^0 + 6 × 16^1 = 4 + 96 = 100

所以:高100×寬100






C311000011( 粗體為區隔符號 )


11000011( m=1:使用整體色彩對應圖 )

11000011( cr=100:cr+1轉十進位後代表8位元色彩解析度 )

11000011( pixel=011:pixel+1轉十進位後代表8位元的像素資料 )




GIF之色彩對應圖↑


---------------------------------------------------------------------------------

這次的作業是運用一套軟體PSPad,

這套軟體可以讓一般使用者作為記事本的取代工具(但是這麼做似乎太大材小用了),

也可以作為程式或網頁開發者的得力助手。



PSPad的功能包括能以分頁的方式顯示不同文字檔案,

讓使用者能夠在多個開發文件之間進行快速的切換,

也可以讓使用者以 FTP 的方式直接修改線上的文件,

並且可以呼叫預設的瀏覽器來開啟編輯中的網頁。



  那這次的作業我是利用之前用小畫家所畫出來圖再轉成GIF動畫,

雖然一開始看到一堆數字就有莫名的頭痛,不過經過老師的講解也比較容易了解,

在上網搜查後發現這套軟體是對於程式開發者而言的好幫手,

讓開發者能夠藉由它的便利性來更快速地完成手邊的工作,



所以能夠學習到這套軟體而且還是免費的覺得很棒,謝謝老師。



---------------------------------------------------------------
接下來是利用老師所分享的程式碼,
寫在bcb程式裡,主要是讀取gif黨裡面所用到的顏色

這是我利用小畫家做的gif檔,所以顏色很少


調色盤

---------------------

因為覺得怎麼顏色這麼少
怕說程式修改有錯誤,所以利用老師分享的圖
跑一次來核對出來的調色盤


調色盤
--------------------------

跟老師跑出來的一樣所以很安心了

多跑1張從網路上抓的gif圖


色盤

其實程式多半是複製老師的在做修改和套用,
但是因為老師都有耳提面命的教學,
讓我學了不少新的程式部份,也更了解了圖片顏色的領域:)
謝謝老師:)

HW02

HW2-1

這次的作業是用 Microsoft GIF Animator 這個軟體來製作小動畫
可以找多張圖來製成一連續動畫


還滿有趣的 :)

這次的作業比較困難的地方是在
製作的圖片必須為GIF檔
不知道為什麼這種格式的圖片超少超難找
於是就一張一張用小畫家另存成GIF檔
但都會造成圖片失真


所以做出來的動畫畫質都不是很好

成品如下
(點擊才能動 謝謝合作)
(不知道為什麼存成GIF檔 上傳後卻變成PNG檔)



圖為系排在校外比賽 熱血飛躍!!!!!

用這個軟體 可以完成許多動畫
可以發揮創意 還不錯

這個小作業滿快就完成了
但如果這個軟體不是局限GIF檔而已 可能會更好...

HW2-2
-PSPad分析GIF-

(請點入看放大圖較清楚 TKS!!!)


HW2-3

-讀取與顯示GIF影像檔案中的調色盤-


以下是我先用老師教學網站上的金龜子及地球GIF檔跑過的結果








接著是我自己利用 Microsoft GIF Animator 軟體製作的GIF檔
將它讀進調色盤



只要是用 Microsoft GIF Animator 軟體製作的GIF檔
讀進來的調色盤都會一樣 是因為這個軟體已有內建的固定調色盤...

程式其實都是複製老師的範例程式
作完的成就感就是看到調色盤好漂亮...
我讓它顯示了路徑、簽章、寬、高、
M(M=1才會有色彩對應圖)、CR(解析度的位元數目)、
Pixel(像素)、背景及Total Color...

上一堂課解釋了一些調色盤需要用到的程式碼

  imGIF = fopen(OpenDialog1->FileName.c_str(), "rb");
  // 這個函數可用來打開本地或者遠端的文件

  fseek(imGIF,0L,SEEK_SET);
  // SEEK_SET (0) 表示 File beginning

  fread(GIFHeader,13, 1,imGIF);
  // 這個函數讀到指定長度的位組或到文件尾端

這些都能理解後 就還滿容易寫的
很希望能把sort後的調色盤也寫出來 但不太會寫
以下也是老師的範例程式...
                
crSortedPalette[k].bRed = crPalette[k].bRed;
crSortedPalette[k].bGreen = crPalette[k].bGreen;
crSortedPalette[k].bBlue = crPalette[k].bBlue;

這就是最後的成品嚕

HW02-GIF 動畫創作與 GIF 格式解析

這次學到了一個新軟體Microsoft GIF Animator
這次作業是利用這軟體製作一個動態圖檔(GIF)
一開始光是找適合的圖有點困難
之後在網路上找了一個旋轉中的問號例如以下

後來利用Microsoft GIF Animatior讓動態圖檔
用出分解圖檔以下是分解圖檔

之後自己也找一張圖來做一個簡略的動態圖檔
以下是他的分解圖
再來是他的完成品
這次的作業挺好玩的
自己製作的GIF檔花了一點點的時間
因為除了要消上面的氣球之外
還要消掉水中的倒影
還要讓他看不出來消掉的痕跡(雖然有點小失敗)
不過製作得挺快樂的
之後利用PSPad這個軟體
來解析我們所製作的GIF檔
以下解析報告及分析
接下來讀取GIF檔調色盤
這是程式的部分

再來讀出來的結果
熱氣球(好繽紛的色彩)
在來是最上面的驚嘆號(再次繽紛但顏色好像有點太多?)

再來是老師的金龜子
討論:
這次作業蠻好玩的
因為是在做動畫
但是在讀取調色盤時發生蠻多問題的
就是不管是班上同學的哪個動畫
讀出來的都一樣
這就有可能是那套製作GIF動畫的軟體
本身固定的調色盤
所以讀出來都會一樣
而驚嘆號明明沒有那麼多顏色
卻也跑出一堆顏色出來
這也可能是軟體的關係
再來就是以下這個圖是錯誤板的熱氣球圖

因為在程式碼當中
在設定顏色時RGB的位置順序錯誤
原本應該是Red Green Blue
在程式碼當中卻是Blue Green Red
所以程式碼的順序錯誤
也會使讀出來的東西有所不同
之後我也試著去讀其他檔案型式的圖片
當然也是需要更改原本程式碼的部分
不過到最後讀不出來就是了
不管是改bmp檔JPEG檔
都讀不出來
可能是有哪些設定需要改掉的
這次作業挺好玩的
不過野花蠻多時間就是了

HW02

HW_2-1


這次的作業是將多張圖片作成一個gif檔

所以我用手機將狗狗的連續動作拍成6張照片

再利用Microsoft GIF Animator做成一個動畫

如下圖:


做完後真的覺得好可愛喔~

原來我們平常在網頁上看到的動畫都是這樣做出來的!

利用多張不同的圖片或是連續的圖

就可以做出很多可愛的動畫

也可以放到msn的交談表情上!

這個軟體讓我們做出自己想要的動畫

也很好上手!

是一個很棒的軟體!!!

------------------------------------------------------------------------------------------------

HW_2-2

紅色區塊的地方是gif檔的簽章~

紫色區塊的地方是用來計算長和寬!

計算方式為6400->0064(16)=100(10)

4*16^0+6*16^1)=4+96=100

藉由這些資訊我們可以知道

像素的長和寬為100*100
綠色區塊所要表達的意思是

87(16)=10000111

第一個1為m,m=1的意思是"使用整體色彩對應圖"

第二到第四個0為cr,cr=000的意思是

"cr+1轉十進位後,代表8位元色彩解析度"

第五個0為區隔符號

第六到第八個1為pixel,pixel=111的意思是

"pixel+1轉十進位,代表8位元的像素資料"

橘色區塊的部分為gif檔的色彩對應圖!!



PSPad簡介:

是一款功能十分強悍的免費編輯軟體,

一般使用者可以將它當作記事本的替代品,

而對於程式開發者而言,它絕對是不可或缺的好幫手,

讓開發者能夠藉由它的便利性來更快速地完成手邊的工作。



這次的作業是利用pspad這個軟體來開啟gif檔的資訊,

開啟後出現了很多複雜的數字,一開始看了真的有點怯步呢!!

不過後來經過認真的研究,不懂的地方問別人或者是上網查詢,

終於比較了解這些數字所代表的意思,原來我們平常所看的這些圖片,

在電腦中是利用這些數字來儲存,真的讓人覺得是個很深的領域呢~

-----------------------------------------------------------------------------------------------

HW_2-3

這是我的gif檔原圖

下面是利用程式run出來的gif檔色盤
在這之後,還嘗試了很多不同的彩色gif檔
發現了一件很特別的事情!

原來彩色的gif檔色盤都長的一樣耶!!

剛開始還以為可能有一些些地方不一樣

可是仔細地比對了一下後

真的完全一樣!

果然要在實驗中發現一些線索呢~

這是我實驗的第二張gif檔

跑出來的色盤如下圖

恩...色盤中的色彩明顯少了很多

應該是因為這張gif檔所使用的顏色較少!!!


這是實驗的第三張gif檔

是毛毛用小畫家畫出來的連續圖

再利用做動畫的軟體 Microsoft GIF Animator將它做成gif檔

跑出來的色盤如下

哇~!!!!!!

跑出來的色盤顏色好少

害我還以為程式有錯誤

但是跑其他的gif檔時都非常的順利

也可以正確的run出來

所以我們推論可能跟用小畫家畫出來的有關~!!!

這次的作業真的讓我們學習到很多東西,

從一開始的做動畫

再來用pspad去觀察圖片在電腦中儲存的資訊

最後再利用程式跑出他的色盤

讓我們對平常視為理所當然的圖片

有了更深一層的了解

由淺慢慢地到深入

學習了更多的知識!!

才能有一點資工人的樣子~~~