SỐ 04
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]
Trang chủ
Thư ngỏ
Nội lực "Peter Pan"
Cầu nối Intel Việt Nam
Chuyện trong tuần
Nhóm Frontpage
Cõi người ta
Kim cương doanh nghiệp
Bình luận thị trường
Cõi Mô-bai
Chuyên đề
Bổ ngửa
Nuôi hồn Robot
Túi càn khôn IT
Hồ lô biến
Cảm về Game
Nhật ký e-CHÍP
 
 
Bản quyền VASC Orient, Công ty phát triển phần mềm VASC
99 Triệu Việt Vương HN; Tel: (04) 9782235 • email: echip@vasc.com.vn