2010年12月8日 星期三

HW02





這是這次的作業中做出gif動畫圖檔的素材

來源是從影片中所截取出來的圖

在每個場景中擷取兩個動作來使用

在從jpg轉成gif檔時圖片因為色彩的種類只剩下256色所以出現了一點失真現象





每張圖顯示的時間是使用0.2秒為間隔

每個動作都重複兩次 所以總共有8個場景

每個場景使用兩個畫格 動作重複兩次 總共有32個畫格




以下為做出來之後的成品:

感想:

這次在實做的時候,在一開始最先摸索的就是顯示時間,每張畫格都可以有不同的時間,在第一次調整時以為只要調整一次就好,所以產生出了第一畫格有停留一下,但是之後的畫格都瞬間顯示就沒了,後來調整每個畫格的顯示時間才完成整個作業,這次作業所使用的軟體還滿容易手,操作很容易,只要稍微練習一下很容易就熟練了。

在上傳時遇到的一些問題,就是直接上傳到部落格時發生了圖片不會動的問題,解決的方法為將圖片上傳到另外的網路空間(例如:銘傳的網路硬碟),然後在網誌"修改HTML"裡打上語法<img src="網址" / > 之後,圖片即變正常的GIF動畫檔了。


------------------------------------------------------------------------------------------------------------------------------------
HW2-2

在用開啟Pspad開啟GIF動畫檔之後出現了GIF圖片檔的format
在一開始位置00~05的地方是GIF檔的簽章
從右方的表格可以對照出是顯示"GIF89a"的字樣
緊接著位置06~07是寬度,08~09是高度
寬度的位置擺放是06~07
對應的值是2A01
但較高的位元是擺在後方所以要由位置07讀到06
所以值是16進制的012A對應出的是10進制的298也就是我圖片的寬度
同樣的 高度由位置09讀到08
16進制00FC轉換成10進制252
所以得到298*252 也就是我GIF圖檔的大小

從以下網址可以得到很多關於GIF檔案格式的資料:
http://www.onicos.com/staff/iz/formats/gif.html


關於我每張圖片的Image Block部分
先去找2C這個開頭標籤
但一開始的時候並不順利
因為在其他格式的內容也有2C的值
所以後來改成搜尋我的圖片寬度以及高度(2A01FC00)
在往前查看地5個Byte是否是2C
後來發現到了如下圖


位置是從328開始
2C後面接著的是Image Left Position(也就是圖片擺放距離左邊的位置)
以及Image Top Position
發現其值都是00
而寬度及高度則都是跟一開始的值相同(2A01FC00)
也就表示我放置動畫圖檔的大小寬度正好是符合整個GIF檔

接下來是Graphic Control Extension Block
存在位置350E0C的地方
一開始的前3個Byte都是固定的(21F904)
而存放在350F00的地方的是我的delay時間
值為16進制的14也就是10進制的20 單位為(百分之一秒)


------------------------------------------------------------------------------------------------------------------------------------
HW2-3


在這學期的所有作業中
我覺得這個讀調色盤的作業是最難的
雖然有範例程式 不過要去讀懂它還是有點困難
對於檔案處理的部分還不是很熟練
像是在取M,Cr,Pixel花了一點時間才看懂
透過在byte中的左右移來清除其他的的bit 使其為零
最後在右移到做右方
得到了所要的資訊
byte bMCrPixel透過讀檔之後一開始是存放著F7
也就是1,111,0,111
個別代表著

"整體色彩對應圖(Global Color Table Flag (GCTF))"
"8位元色彩解析度(Color Resolution)"
"區隔符號0"
"8位元的像素資料(Size of Global Color Table: 2^(1+n))"


GIFHeader[0].bMCrPixel >> 7; 執行之後就變成了
00000001 得到了第一個資訊M
而CR是接下來的3個bits
bCR = GIFHeader[0].bMCrPixel <<>
左移一次後清掉M 得到11101110
bCR = bCR >> 5;
在右移5 得到00000111 -->轉成10進制後的7
因為有0~7所以共有8個 故+1
bCR = bCR + 1;

檔案存取的格式就跟之前用Pspad所開啟的一樣



沒有留言:

張貼留言