|
TÚI CÀN KHÔN IT |
|
Làm hoạt hình đơn
giản với GIF
Hoàng Ngọc Giao |
|
Khi thiết kế trang web hoặc giao diện người dùng
(user interface) cho đĩa CD, bất cứ khi nào muốn có
cái chi nhúc nhích, động đậy một chút cho vui mắt,
bạn nên nghĩ ngay đến dạng thức hình ảnh GIF (đọc
như là "jif"). |
|
GIF, viết tắt của Graphics Interchange Format, là
dạng thức hình ảnh được thiết kế bởi CompuServe, một
tổ chức chuyên cung cấp dịch vụ trực tuyến (online
service) tại Mỹ, rất nổi tiếng vào cuối thập niên
1980, đầu thập niên 1990, trước thời kỳ bùng nổ mạng
Internet. Vào thời ấy, máy tính có khả năng hiển thị
đồng thời 256 màu đã thuộc vào loại cao sang ghê
lắm, nên ta không có gì phải ngạc nhiên khi hình ảnh
ở dạng thức GIF chỉ có thể có tối đa 256 màu. |
|
Dạng thức GIF đầu tiên có tên gọi GIF87a chỉ chứa
được một khung hình (frame) duy nhất. Ngày nay, dạng
thức GIF được dùng trong mọi công cụ đồ họa trên máy
tính đều là GIF89a. Một tập tin GIF89a bao gồm nhiều
khung hình, tương tự như một đoạn phim, do đó được
mệnh danh là Animated GIF. Dân ta thường gọi đó là
GIF động (đậy). |
|
Tại sao dùng GIF? |
|
Trong dạng thức GIF, màu sắc tại mỗi điểm ảnh
(pixel) được biểu diễn tối đa bởi 8 bit, ứng với 28
= 256 trị số khả dĩ (từ 0 đến 255). Trị số ấy cho
biết vị trí trong một bảng màu (palette) gồm 256
màu. Nếu hình có ít màu hơn, số bit dành cho mỗi
điểm ảnh có thể ít hơn. Chẳng hạn, với hình GIF
trắng đen, mỗi điểm ảnh chỉ cần 1 bit, ứng với 21 =
2 trị số khả dĩ (2 màu). Nếu hình GIF có ít hơn 16
màu, mỗi điểm ảnh có thể được biểu diễn bởi 4 bit,
ứng với 24 = 16 trị số, trỏ đến các vị trí trong một
bảng màu gồm 16 màu. Số bit dùng cho một điểm ảnh
thường được gọi là chiều sâu màu (color depth). |
|
Các dạng thức hình ảnh có màu sắc thực (true color),
như JPG chẳng hạn, thường có chiều sâu màu là 24
bit, ứng với 224 = 16.777.216 màu sắc khả dĩ (vượt
xa khả năng cảm nhận màu sắc của mắt người!). Ngày
nay, khi hầu hết máy tính đều thể hiện được màu sắc
thực, lẽ ra dạng thức hình ảnh GIF xưa cũ chẳng còn
đất sống. Thế nhưng, nếu thường lui lại các trang
web ưa thích, bạn sẽ nhận thấy hình ảnh ở dạng thức
GIF cũng nhiều như hình ảnh có màu sắc thực ở dạng
thức JPG. Phải chăng thiên hạ vẫn còn nhiều người...
hoài cổ? |
|
Dạng thức JPG nổi tiếng ở chỗ nó cho phép ta giảm
mạnh kích thước tập tin hình ảnh bằng cách giảm chất
lượng màu sắc. Với mức độ giảm hợp lý, "người trần
mắt thịt" không thể nhận ra sự khác biệt của hình
ảnh JPG so với hình ảnh gốc. Trong khi đó, giải
thuật nén dùng cho hình ảnh GIF là giải thuật thông
thường, không để mất một chút dữ liệu nào. Có thể
bạn không tin: Sau khi vẽ hình bằng công cụ nào đó,
nếu lưu hình ảnh ở dạng GIF, có khi ta được tập tin
nhỏ gọn hơn hẳn so với trường hợp JPG. Số là dạng
thức GIF thích hợp với hình ảnh có màu sắc chân
phương, rõ rệt từng mảng miếng, đường nét trong khi
dạng thức JPG lại thích hợp với hình có màu sắc phức
tạp như hình chụp bởi máy ảnh (photorealistic
image). Chẳng hạn, nếu tạo hình một cái nút bấm
(button) đơn giản và lưu ở cả hai dạng JPG và GIF,
bạn sẽ thấy tập tin JPG lớn hơn tập tin GIF. Bạn có
thể gia tăng độ nén của dạng JPG để cạnh tranh với
dạng GIF nhưng chắc chắn bạn sẽ thu được một kết quả
nhòe nhoẹt, lốm đốm, trông rất khó chịu. |
|
Với GIF, ta có thể quy định một màu nào đó trong
hình là màu trong suốt (cho thấy màu "ở phía sau"
nó) trong khi với JPG thì không thể. Vì vậy, nút bấm
hình tròn ở dạng JPG sẽ luôn được bao bởi một khung
chữ nhật, trừ khi bạn cho màu nền của nó tiệp với
màu xung quanh. Cách làm này trở nên vô hiệu khi bạn
đặt hình cái nút bấm ấy trên một nền "ca-rô" như
khăn trải bàn hoặc nền có dạng sần sùi như cây gỗ
chẳng hạn. Lúc ấy, GIF là lựa chọn duy nhất. |
|
Trên tất cả, GIF có thể chứa nhiều khung hình trong
khi JPG thì không. Mở xem một tập tin GIF động bằng
trình duyệt, bạn thấy nó "biểu diễn văn nghệ" ngay
tức thì. Bạn không cần cài đặt phần mềm bổ sung nào
cả. Trình duyệt web tự động lưu hình ảnh GIF trong
bộ nhớ đệm nên nếu bạn dùng một hình ảnh GIF nhiều
lần trên trang web, trình duyệt chỉ tải xuống hình
ảnh ấy một lần duy nhất. Do vậy, GIF động rất thích
hợp để tạo ra các chi tiết chớp nháy để trang trí
đây đó trên trang web của bạn. Cần nói thêm rằng GIF
động thuộc loại "phim câm" nên nó có lãnh địa riêng,
không phải là đối thủ cạnh tranh với dạng thức SWF
của Macromedia Flash. |
|
Các công cụ làm GIF động |
|
Vì dạng thức GIF đã có từ thời... "hồng hoang" nên
những công cụ đồ họa cho phép lưu hình ảnh ở dạng
GIF nhiều vô kể. Riêng chuyện làm GIF động, bạn có
thể tìm lại những "đồ cổ" vẫn chạy tốt gần... chục
năm nay như Animator Pro hoặc Animator Studio (của
hãng Autodesk). Hai công cụ này đều cho phép bạn vẽ
từng khung hình để tạo nên hoạt cảnh tùy ý và lưu
thành nhiều tập tin GIF đánh số liên tiếp (mỗi tập
tin GIF chứa một khung hình). Sau đó, bạn có thể
dùng công cụ khác để lắp ráp những tập tin GIF ấy
thành một tập tin GIF động duy nhất. |
|
Những "công cụ khác" ấy có thể là Microsoft GIF
Animator (thứ này cũng thuộc loại "đồ cổ"),
WebMotion (của hãng Astound) hay GIF Construction
Set (của hãng Alchemy Mindworks). Mấy thứ "đồ chơi"
này không giúp ta vẽ diễn xuất tinh tế để làm phim
hoạt hình một cách chuyên nghiệp như Animator Studio
nhưng lại có những phương tiện để nhanh chóng tạo ra
hình... nhúc nhích hay chớp nháy, đủ để bạn trang
điểm cho giao diện người dùng, tạo nên bộ mặt "tươi
tỉnh", vui nhộn, thân thiện hơn. Riêng WebMotion có
một thư viện phong phú bao gồm rất nhiều sưu ảnh
(clip-art) và con rối (sprite) để bạn dùng cho hoạt
cảnh của mình. Chẳng hạn, chỉ cần chọn con rối và
vạch đường đi, bạn có ngay một hoạt cảnh trong đó
con rối "bay lả lướt" theo quỹ đạo đã định. Bạn có
thể tìm thêm nhiều công cụ tạo GIF động khác tại địa
chỉ
http://members.aol.com/royalef/toolbox.htm. |
|
|
|
Công cụ thì có rất nhiều nhưng dĩ nhiên bạn sẽ chỉ
chọn một vài thứ làm bửu bối cho mình. Ta hãy làm
quen với GIF Construction Set (http://www.mindworkshop.com/alchemy/gifcon.html),
một "bộ đồ nghề" tinh xảo và dễ dùng. Với GIF
Construction Set, bạn không chỉ lưu kết quả dưới
dạng GIF động mà còn có thể chuyển đổi thành dạng
AVI để dùng cho PowerPoint. |
|
Mon men vào địa chỉ mạng vừa nêu và "xin xỏ" bộ công
cụ GIF Construction Set, ta sẽ nhận được tập tin
gcsp20.exe. Khi chạy chương trình cài đặt này, bạn
thấy xuất hiện một khung đối thoại yêu cầu cho biết
số đăng ký. Bạn hãy bấm vào nút Evaluate để tỏ ý
"dùng thử thôi mà" (làm gì dữ dzậy!). Thực ra, GIF
Construction Set rất... dễ thương, diện mạo đơn
giản. Chỉ cần "vọc" chừng một buổi, bạn sẽ biết hết
các chức năng của nó. |
|
Làm quen
với GIF Construction Set |
|
Thử mở tập tin ball.gif có sẵn,
bạn thấy nội dung tập tin ấy phơi bày "trần trụi"
trong một cửa sổ, gồm mười phần. Phần đầu là tiêu đề
(header), lưu giữ thông tin tổng quát về cả tập tin.
Từ phần Hai đến phần Chín là các khung hình liên
tiếp. Phần Mười là chú giải (comment), giúp ta
"chua" thêm câu chữ tùy ý, bày tỏ tình cảm... lăng
nhăng chi đó. Chú giải là nội dung ẩn, không xuất
hiện trên hình (các công cụ xem ảnh bình thường
không biết đến phần này của tập tin GIF). Muốn tìm
hiểu chi tiết phần nào của tập tin GIF, bạn bấm kép
vào phần đó. Để xem GIF động biểu diễn, bạn bấm vào
nút có hình "mắt kính đen". |
|
 |
|
Ta bày trò gì cho riêng mình đi,
bạn nhé. Bạn hãy chọn mục LED Signs trên trình đơn
Edit. Khung đối thoại LED Signs hiện ra giúp ta làm
bảng chữ điện tử (để "chạy chữ" từ phải qua trái báo
tin sốt dẻo nào đó). Chắc bạn đã biết, bảng chữ điện
tử gồm nhiều đèn LED hợp lại. Chữ được tạo ra bởi
một số đèn LED phát sáng. |
|
Trong ô nhập liệu Sign text, bạn
hãy gõ dòng chữ như sau: |
|
@RLe trao tang @Gbieu tuong @YHiep si cong nghe
thong tin |
|
 |
|
Với cách viết như vậy, cụm từ Le
trao tang có màu đỏ, cụm từ bieu tuong có màu xanh
và màu vàng được dùng cho phần còn lại - Hiep si
cong nghe thong tin. Bạn có thể quy định màu khác
đi, chẳng hạn, dùng @G để có màu xanh lá (green ),
@B cho màu xanh dương (blue) và @W cho màu trắng
(white). |
|
Khung đối thoại LED Sign còn cho
phép bạn quy định nhiều chi tiết liên quan đến "bảng
điện tử": |
|
Loop - Nếu bạn bật ô duyệt
(check box) này, "bảng điện tử" của ta sẽ chạy chữ
liên tục, không bao giờ ngừng. |
|
Show Dark Pixels - Nếu muốn thấy cả những đèn
LED không sáng (cho giống thực hơn), bạn bật ô duyệt
này. Tuy nhiên sự phức tạp này sẽ làm tăng kích
thước tập tin. |
|
Smooth Scroll và Columns per Frame -
Nếu bật Smooth Scroll (chạy êm ru), trị số trong ô
Columns per Frame (số cột xê dịch khi chuyển khung
hình) sẽ có tác dụng. Dĩ nhiên, nếu chữ chạy càng
êm, số khung hình cần thiết càng lớn. |
|
Compact Sign - Nếu tắt ô duyệt này, bạn sẽ có
dòng chữ lớn hơn, dễ đọc hơn và tập tin GIF thu được
cũng lớn hơn. |
|
Compress Palette - Để tập tin GIF thu được có
chiều sâu màu nhỏ nhất (giảm kích thước tập tin),
bạn bật ô duyệt này. |
|
|
|
Columns Wide - Ô này cho phép ta quy định số
cột đèn LED trong "bảng điện tử". Số này lớn thì
"bảng điện tử" sẽ rộng hơn. |
|
Delay - Ô này quy định thời gian chờ trước
khi chuyển khung hình. Đơn vị tính là phần trăm
giây. |
|
Trên khung đối thoại LED Sign,
những lựa chọn mặc định đều nhằm mục đích tạo ra tập
tin GIF cuối cùng nhỏ nhất có thể được. Nói chung,
bạn nên chấp nhận những quy định đó và bấm OK ngay.
Trong chớp mắt, bạn có được "bảng điện tử" như ý.
Bạn thử ngay đi (cái trò này có thể đính vào thư gửi
cho bạn bè, trông rất vui mắt!). Khi lưu "bảng điện
tử" vừa thực hiện theo hướng dẫn trên, bạn thu được
một tập tin GIF có kích thước 23 KB. Gọn nhẹ cực kỳ! |
 |
|
Kích thước
tập tin GIF động |
|
Kích thước tập tin GIF động là
chuyện bạn phải luôn quan tâm. Nếu dùng cho trang
web, kích thước tập tin GIF động chỉ nên dưới 50KB.
Ưu thế của GIF động là ở những trò vui nho nhỏ. Trên
trang web, bạn không nên kéo dài thời gian "diễn
xuất" quá 5 giây. |
|
Để giảm kích thước tập tin GIF
đến mức tối thiểu, bạn chọn mục Supercompress trên
trình đơn File. Khi ấy, ta có thể yêu cầu GIF
Construction Set chỉ ghi nhận những thay đổi từ
khung hình này qua khung hình khác thay vì lưu
nguyên vẹn tất cả khung hình trong tập tin GIF.
Supercompress còn rà soát lại số màu thực dùng để
tạo ra chiều sâu bit nhỏ nhất có thể được, thay vì 8
bit như mặc định. |
|
Về nguyên tắc, mỗi khung hình
trong tập tin GIF có thể có bảng màu riêng. Nếu điều
đó không thực sự cần thiết, không cải thiện đáng kể
chất lượng màu sắc, bạn chỉ nên dùng một bảng màu
duy nhất cho mọi khung hình để giảm kích thước tập
tin GIF. Chẳng hạn, khi chèn thêm khung hình vào
hoạt cảnh đang thực hiện bằng tập tin hình ảnh có
sẵn nào đó bằng cách chọn Edit | Insert Block |
Image, bạn thấy khung đối thoại Palette hiện ra, yêu
cầu chọn phương án cho bảng màu. Nói chung, bảng màu
của các hình ảnh GIF khác nhau nên khi dung nạp
chúng vào một tập tin duy nhất, không thể không giải
quyết "tranh chấp" giữa các bảng màu. |
 |
|
Khung đối thoại Palette bày ra ba
phương án để bạn chọn: |
|
Dither this image to the
global palette - Buộc hình đang xét tuân theo
bảng màu toàn cục duy nhất và dùng thuật giả màu
(dithering) để tạo ra màu cần thiết nếu bảng màu ấy
không đủ màu cho hình đang xét. Giả màu nghĩa là tạo
ra những cấu trúc chấm màu thích hợp để ta có cảm
giác về một màu khác. Phương án này làm cho hình trở
nên lốm đốm, phức tạp hơn và tập tin GIF cuối cùng
sẽ... phì ra đáng kể. Bạn đừng quên, GIF có độ nén
tốt nhất khi hình ảnh chỉ có những mảng miếng, đường
nét rõ ràng. |
|
Remap this image to the global
palette - Dùng bảng màu toàn cục và buộc màu sắc
trên hình đang xét thay đổi một cách... mù quáng
theo bảng màu ấy. Chẳng hạn, một điểm ảnh màu đỏ có
thể bị chuyển thành xanh khi bị ép dùng bảng màu
mới. Phương án này giúp giảm thiểu kích thước tập
tin. Nếu hình ảnh không trở nên xấu đến mức khó chấp
nhận thì đây là phương án nên chọn. |
|
Use local palette for this
image - Giữ nguyên "bản sắc" của hình được đưa
vào, chấp nhận bảng màu riêng cho nó. Ngày nay, hầu
hết màn hình máy tính có màu sắc thực nên chấp nhận
mỗi khung hình có bảng màu riêng là chuyện bình
thường thôi. Phương án này không làm bạn lo lắng vì
chuyện đổi màu trên hình nhưng cái giá phải trả là
tập tin GIF sẽ lớn lên. Nếu đó là "giá phải chăng"
thì đây cũng là phương án tốt. |
|
Dùng GIF động có nhiều thuận lợi
nhưng để kích thước tập tin nhỏ nhất, bạn luôn phải
cân nhắc vấn đề bảng màu, một chuyện gần như.... phi
lý nếu bạn không từng đánh vật với sự hạn chế màu
sắc trên những máy tính của một thời chưa xa. Dù
sao, cái khó mà GIF đặt ra chính là điều kiện để bạn
thi thố tài năng. Một tập tin GIF có hiệu quả thể
hiện cao (vừa đẹp, vừa... thon) là bằng chứng rõ rệt
nhất của tay nghề tạo hình "thời số hóa". |
|
|