 |
|
HỒ LÔ BIẾN |
|
SVG HÌNH ẢNH Ở
DẠNG THỨC XML
HOÀNG NGỌC GIAO (SAMIS) |
|
Scalable Vector Graphics - SVG, một ứng
dụng XML, là dạng thức phương tiện cực mạnh để biểu
diễn hình ảnh và hoạt hình trên web, đồng thời cho
phép tạo ra dễ dàng sự tương tác giữa hình ảnh với
người xem. SVG đã khởi động cuộc chơi lớn cho ngành
đồ họa, lan tỏa từ các máy chủ trên web cho đến
những thiết bị cầm tay. |
|
TỪ
KHI XML TRỞ THÀNH phương thức chuẩn để biểu diễn dữ
liệu (data) và thông điệp (message) trên mạng, xuất
hiện ngày càng nhiều những ứng dụng XML trên mọi
lĩnh vực. Đối với những ứng dụng XML quan trọng, có
tính phổ biến (như XHTML chẳng hạn), Hội đồng W3C
(World Wide Web Consortium), cơ quan đầu não của
web, cũng tiến hành xem xét và công nhận. Những
quyết định của W3C về chuẩn tuy ở dạng “khuyến khích
sử dụng” (recommendation) nhưng đều rất “nặng ký”.
Sau mỗi quyết định của W3C, cả guồng máy công nghiệp
thông tin khổng lồ bắt đầu chuyển động theo lộ trình
vạch sẵn... |
|
Khi
nói với bạn như vậy, thực ra tôi đang nghĩ đến một
ứng dụng XML cụ thể đã được W3C công nhận là chuẩn
vào tháng 9/2001. Đó là dạng thức SVG (Scalable
Vector Graphics), phương tiện cực mạnh (thật đó!) để
biểu diễn hình ảnh và hoạt hình trên web, đồng thời
cho phép tạo ra dễ dàng sự tương tác giữa hình ảnh
với người xem. SVG đã khởi động cuộc chơi lớn cho
ngành đồ họa, lan tỏa từ các máy chủ trên web cho
đến những thiết bị cầm tay. |
|
“Dạng thức hình ảnh mới? Đã có quá nhiều dạng
thức hình ảnh khác nhau rồi còn gì! Nào là GIF, JPG,
PNG,...”. Nếu từng “lăn lộn” ít nhiều trên web, có
lẽ đó là câu hỏi đầu tiên đến với bạn. |
|
Các
dạng thức hình ảnh vừa nêu đều thuộc loại bít-máp.
Có thể bạn cũng đã quen thuộc với các dạng thức hình
ảnh véc-tơ như WMF (Windows MetaFile), EPS
(Encapsulated PostScript),... Tuy nhiên, SVG là dạng
thức hình ảnh véc-tơ theo đúng quy cách XML. Mỗi tập
tin hình ảnh SVG là một văn bản XML. Sự hấp dẫn của
SVG trước hết xuất phát từ triết lý nguồn mở (open
source) của XML. Bạn có thể “nhìn phía sau” hình ảnh
SVG bằng trình soạn thảo văn bản (text editor) bất
kỳ, nhờ vậy có thể chỉnh sửa, trích lục dễ dàng
những thông tin cần thiết hoặc học hỏi kinh nghiệm
của người khác. SVG, cũng như HTML, không có gì bí
mật, không thuộc quyền sở hữu của công ty nào cả. |
|
Những
hình ảnh mà bạn thấy trên web hiện nay hầu hết đều ở
dạng thức GIF, JPG hoặc PNG. Riêng dạng thức GIF còn
cho phép tạo ra hoạt hình đơn giản (tập tin GIF có
thể chứa nhiều hình ảnh bít-máp để hiển thị liên
tiếp). Tuy nhiên, hình ảnh ở dạng thức GIF chỉ có
thể có tối đa 256 màu và có cơ chế hoạt hình theo
nguyên lý truyền thống (hiển thị liên tiếp những
hình ảnh khác nhau) tỏ ra bất lợi khi hình ảnh có
kích thước khá lớn. Tập tin GIF lớn cần nhiều thời
gian truyền qua mạng, tốc độ chạy hình sụt giảm làm
cho hình ảnh hoạt động không tự nhiên, đôi khi giật
giật như... hóc xương. Để trình diễn hoạt hình trên
web với phong cách chuyên nghiệp (màu sắc phong phú,
diễn xuất “trơn tru”), hiện nay người ta hầu như chỉ
dùng dạng thức SWF của Macromedia Flash. Cần nhấn
mạnh rằng Flash là công nghệ “đóng kín”, thuộc quyền
sở hữu của hãng Macromedia. Với SVG, ta hoàn toàn có
thể đạt được mọi ưu điểm của Flash (“và còn hơn thế
nữa”). |
|
Cũng như trường hợp Flash, muốn cho các trình duyệt
web (Web Browser) hiện nay hiển thị được hình ảnh
SVG, bạn phải cài đặt phần mềm bổ sung (plug-in),
phổ biến nhất là phần mềm bổ sung miễn phí của hãng
Adobe (Adobe SVG plug-in) mang tên SVG View. Có
điều, SVG View của Adobe hiện nay vẫn chưa thực hiện
hoàn chỉnh mọi ý tưởng, mọi khả năng hàm chứa trong
chuẩn SVG. Dù sao, bạn cứ tin rằng tình thế đang
thay đổi. Chẳng hạn, hãng Corel đã chú ý đến dạng
thức SVG trong phiên bản Corel DRAW 10 (xuất/nhập
bản vẽ dưới dạng SVG), tiếp tục yểm trợ mạnh mẽ dạng
thức SVG trong phiên bản Corel DRAW 11. Chắc chắn,
các trình duyệt web trong tương lai phải có khả năng
“bẩm sinh” đọc hiểu và hiển thị hình ảnh ở dạng thức
SVG, không cần cài đặt phần mềm bổ sung. |
|
[Đầu trang] |
|
Bít-máp và véc-tơ |
|
Để
hiểu bản chất của SVG, bạn cần phân biệt rõ hai loại
hình ảnh trên máy tính: hình bít-máp và hình véc-tơ. |
|
Hình bít-máp (bitmap hay raster) là hình được lưu
trữ dưới dạng một tập hợp các chấm nhỏ, xếp theo
hàng và cột. Mỗi chấm có màu sắc riêng biệt, được
diễn đạt bằng một trị số. Như vậy, hình bít-máp về
thực chất là một tập hợp trị số. Do được tạo bởi
những chấm riêng biệt, hình bít-máp khi được phóng
to, quay nghiêng hoặc khi được in ra giấy thường làm
cho người xem không hài lòng vì các đường nét “răng
cưa” bị lộ rõ. |
|
Hình
véc-tơ (vector) là hình được lưu trữ dưới dạng một
tập hợp các yếu tố xác định đường nét (như đường
thẳng, đường tròn, đường cong,...). Màu tô của các
đường khép kín cũng được ghi nhận. Ví dụ, chỉ cần
ghi nhớ tọa độ góc trên bên trái của một hình chữ
nhật cùng chiều rộng và chiều cao của nó, chương
trình máy tính dễ dàng vẽ ra và tô màu hình chữ
nhật, không cần ghi nhớ trị số màu sắc của từng chấm
hợp thành hình chữ nhật ấy. Khi được phóng to, thu
nhỏ hoặc quay nghiêng, chất lượng hình véc-tơ không
đổi. Hình véc-tơ có đường nét mịn màng khi được in
ra giấy. |
|
SVG
là hình véc-tơ được thể hiện theo quy cách XML. Do
hiện có khá nhiều phương tiện xử lý dữ liệu ở dạng
XML, trong tương lai gần chắc chắn sẽ xuất hiện ngày
càng nhiều chương trình có khả năng hiển thị và biến
đổi hình ảnh SVG. Với bản chất véc-tơ, hình ảnh SVG
có thể được phóng to, thu nhỏ dễ dàng, không cần
chỉnh sửa gì thêm. Hơn nữa, tập tin SVG là tập tin
văn bản nên có thể được nén rất mạnh. Do vậy, bạn sẽ
thấy SVG ngày càng trở nên quan trọng với web. Phổ
ứng dụng SVG trải rộng từ màn hình máy tính thông
thường đến màn hình nhỏ nhắn của những thiết bị cầm
tay (SVG Mobile). |
|
SVG hay SWF? |
|
Có
ý kiến cho rằng dạng thức SWF của Macromedia đã quá
phổ biến đến mức trở thành chuẩn trên thực tế, dường
như ai đó rỗi hơi cho ra đời thêm một thứ SVG mà thế
giới chẳng chờ đợi và chắc cũng còn lâu lắm SVG non
nớt mới có thể tạo được vai trò như SWF. Thực ra
những kẻ “rách việc” cùng xây dựng nên chuẩn SVG đều
là những đại gia: Adobe, Apple, Canon, Corel,
Hewlett-Packard, Microsoft, Kodak, Sun và chính
Macromedia nữa (run lắm chứ!). Khi dữ liệu trao đổi
qua web đều ở dạng XML như hiện nay, biểu diễn hình
ảnh bằng XML là “mong ước bấy lâu” của những người
phát triển ứng dụng web. Với SVG, tương tác giữa
người dùng và trang web trở nên phong phú như trong
trò chơi điện tử, điều mà HTML không thể thực hiện.
Hơn nữa, vì là văn bản XML, bản thân hình ảnh SVG có
thể chứa dữ liệu gắn liền với từng bộ phận của nó.
Khả năng này cực kỳ hữu ích cho dịch vụ bản đồ (map
services) cũng như dịch vụ web nói chung. |
|
Để
chứng tỏ SVG hiệu quả hơn SWF trên web,
Antoine Quint, một bậc
sư về SVG, đã thực hiện lại hoạt cảnh giống hệt như
sản phẩm của Niklas Gustavsson tạo bởi Macromedia
Flash 5 (http://www.xml.com/pub/a/2002/01/23/svg/index.html).
Hoạt cảnh gồm những khối vuông xếp ngay ngắn mà bạn
có thể dùng chuột hất chúng lên cao. Khi rớt xuống,
các khối vuông chuyển động nhanh dần (như trong thực
tế) rồi nẩy lên một cách... điệu nghệ trước khi nằm
yên. |
|
Sản
phẩm cuối cùng của Antoine Quint là một tập tin SVGZ
(dạng nén của SVG) có kích thước 926 byte (http://www.xml.com/2002/01/23/svg/cubes_final.svgz),
nhỏ hơn tập tin SWF của Niklas Gustavsson với kích
thước 1.29 KB (http://www.xml.com/2002/01/23/svg/cubes.swf).
Không phải là chuyện “kèn cựa thành tích”, điều chủ
yếu mà Antoine Quint muốn chứng minh là: với những
hoạt cảnh dài hơn, phức tạp hơn, ưu thế của SVG sẽ
càng lớn hơn nữa. |
|
Bạn
có cảm thấy một hướng đi mới, một cơ hội mới đang mở
ra? Dù sao bạn cũng nên ghé qua địa chỉ
www.w3.org/Graphics/SVG để chứng kiến một chuẩn
công nghiệp mới đang phát triển mạnh mẽ trong thế
giới đồ họa và truyền thông. SVG rồi sẽ trở thành
quen thuộc với mọi người như HTML hiện nay. |
|
[Đầu trang] |
|
 |
|
 |