Định dạng tệp
PNG là gì? Nén không mất dữ liệu và nền trong suốt
PNG là định dạng ảnh không mất dữ liệu, giữ nguyên chính xác từng điểm ảnh và hỗ trợ độ trong suốt đầy đủ. Đây là câu chuyện nó ra đời từ tranh chấp bằng sáng chế GIF, cách nén của nó hoạt động và khi nào nên chọn PNG.
Tác giả: Hemen Dönüştür Editör EkibiNgày đăng: 10 phút đọc

PNG (Portable Network Graphics) là định dạng ảnh lưu hình ảnh mà không làm mất bất kỳ chi tiết nào và hỗ trợ độ trong suốt đầy đủ. Nó đã trở thành chuẩn mực cho ảnh chụp màn hình, logo, biểu tượng và đồ họa giao diện. Bài viết này trình bày vì sao PNG ra đời, cách nén của nó hoạt động, vì sao đôi khi nó tạo ra tệp rất nặng, và các mẹo thực tế khi chuyển đổi ảnh PNG.
PNG ra đời thế nào: GIF và bằng sáng chế LZW
Đầu thập niên 1990, phần lớn đồ họa trên web là GIF, và GIF dùng thuật toán nén LZW, vốn được Unisys cấp bằng sáng chế. Theo bài viết về lịch sử định dạng của Greg Roelofs, thỏa thuận cấp phép giữa CompuServe và Unisys được công bố một cách lặng lẽ vào ngày 28 tháng 12 năm 1994, làm dấy lên khả năng phải trả phí bản quyền cho phần mềm ghi tệp GIF. Sau phản ứng trên Usenet, Thomas Boutell đăng bản thảo đầu tiên của một định dạng không vướng bằng sáng chế, khi đó gọi là "PBF", vào ngày 4 tháng 1 năm 1995. Cái tên "PNG" được đề xuất ngày 6 tháng 1 và được chọn trong Bản thảo 5 ngày 23 tháng 1 năm 1995. Đặc tả được chốt với Bản thảo 9 ngày 7 tháng 3 năm 1995.
W3C công bố PNG ở cấp Khuyến nghị ngày 1 tháng 10 năm 1996, và theo Library of Congress, cùng văn bản đó được IETF công bố thành RFC 2083 vào tháng 1 năm 1997. Ấn bản thứ hai có bổ sung phần đính chính ra đời ngày 10 tháng 11 năm 2003 và trở thành tiêu chuẩn quốc tế ISO/IEC 15948. Ấn bản thứ ba PNG của W3C, công bố ngày 24 tháng 6 năm 2025, đã đưa PNG động (APNG), chunk cICP để báo hiệu HDR và chunk eXIf cho dữ liệu EXIF vào đặc tả chính thức.
Cách nén PNG hoạt động
PNG không mất dữ liệu: các điểm ảnh bạn nhận được khi mở tệp giống hệt từng bit với các điểm ảnh đã được lưu. Tệp được thu nhỏ qua hai giai đoạn.
1. Bộ lọc hàng
Trước khi nén, mỗi hàng điểm ảnh đi qua một bộ lọc. Thay vì chính giá trị điểm ảnh, bộ lọc lưu phần chênh lệch so với các điểm lân cận, và ở những vùng phẳng hoặc mượt, các chênh lệch này gần bằng 0 nên nén tốt hơn nhiều. Đặc tả định nghĩa năm loại bộ lọc: None, Sub (điểm ảnh bên trái), Up (điểm ảnh phía trên), Average (trung bình của bên trái và phía trên) và Paeth (dự đoán từ các điểm ảnh bên trái, phía trên và chéo trên bên trái). Bộ mã hóa có thể chọn một bộ lọc khác nhau cho từng hàng.
2. DEFLATE
Dữ liệu đã lọc được nén bằng DEFLATE, cùng thuật toán dùng trong tệp ZIP, và được lưu theo định dạng zlib bên trong các chunk IDAT. Đây là phương pháp nén duy nhất mà đặc tả định nghĩa, và nó dùng cửa sổ trượt tối đa 32 KB. Các chương trình khác nhau tạo ra tệp PNG có dung lượng khác nhau từ cùng một hình ảnh vì chúng bỏ nhiều hay ít công sức vào việc chọn bộ lọc và thiết lập DEFLATE; bản thân hình ảnh thì giống hệt nhau.
Cấu trúc chunk
Một tệp PNG bắt đầu bằng chữ ký 8 byte, theo sau là các chunk: IHDR cho phần đầu, IDAT cho dữ liệu ảnh và IEND để kết thúc tệp. Các chunk tùy chọn có thể chứa hồ sơ màu (iCCP), gamma (gAMA), văn bản (tEXt, iTXt) và độ trong suốt đơn giản (tRNS).
Kiểu màu, độ sâu bit và độ trong suốt
PNG hỗ trợ ảnh thang xám, ảnh bảng màu (indexed) và ảnh màu thật (truecolor). Theo Library of Congress, độ sâu mẫu từ 1 đến 16 bit; ảnh RGB thông thường dùng 8 bit mỗi kênh (24 bit), và 16 bit mỗi kênh (48 bit) khi cần. Một kênh alpha tùy chọn lưu giá trị trong suốt riêng cho từng điểm ảnh. Cách này linh hoạt hơn nhiều so với độ trong suốt bật/tắt đơn giản của GIF: bóng đổ, cạnh mềm và các lớp bán trong suốt đều hiển thị đúng.
Tùy chọn đan xen Adam7 cho phép ảnh hiện ra thô trước rồi rõ dần trong khi tải, nhưng thường làm tệp nặng hơn.
PNG bảng màu và giảm số màu
Trong PNG bảng màu (indexed), mỗi điểm ảnh lưu một chỉ số trỏ vào bảng màu tối đa 256 mục thay vì chính màu sắc. Nhờ vậy, logo, biểu tượng và hình minh họa phẳng ít màu vừa vặn trong những tệp rất nhỏ. PNG bảng màu còn có thể gán giá trị trong suốt riêng cho từng mục trong bảng màu qua chunk tRNS, nên khác với GIF, có thể có màu bảng màu bán trong suốt.
Tuy nhiên, giảm một bức ảnh chụp hay dải chuyển màu xuống PNG bảng màu sẽ gây ra hiện tượng phân dải màu (banding) và các họa tiết hòa sắc (dithering). Vì vậy, giảm số màu là một bước tiền xử lý cần chọn tùy theo loại hình ảnh; bản thân định dạng PNG vẫn không mất dữ liệu.
PNG được dùng rộng rãi đến mức nào?
Dữ liệu W3Techs tháng 10 năm 2026 cho thấy PNG có mặt trên 74,9% số trang web được theo dõi, khiến nó trở thành định dạng ảnh được dùng rộng rãi nhất trên các website. Theo Web Almanac 2024 của HTTP Archive, 28,4% hình ảnh trên trang di động là PNG, chỉ sau JPEG (32,4%). Cùng báo cáo cho biết tệp PNG trung vị dùng 3,8 bit mỗi điểm ảnh, so với 2,0 của JPEG và 1,3 của WebP. Độ phủ của PNG trên các website phần lớn đến từ logo và biểu tượng cần nền trong suốt; phục vụ ảnh chụp lớn dưới dạng PNG làm trang nặng một cách không cần thiết.
Khi nào dùng PNG và khi nào chọn định dạng khác
| Nội dung | Khuyến nghị |
|---|---|
| Ảnh chụp màn hình, giao diện, đồ họa có chữ | PNG (hoặc WebP không mất dữ liệu) |
| Logo và biểu tượng có nền trong suốt | PNG; SVG nếu bạn có bản gốc vector |
| Ảnh chụp | JPG, WebP hoặc AVIF; PNG nặng một cách không cần thiết |
| Bản làm việc sẽ còn chỉnh sửa tiếp | PNG; không tích lũy mất mát khi lưu lại |
| Ảnh dạng ảnh chụp có nền trong suốt cho web | WebP hoặc AVIF; giữ được độ trong suốt và thu nhỏ tệp |
Trang WebP của Google cho biết ảnh WebP không mất dữ liệu nhỏ hơn PNG 26%. Điều đó khiến WebP trở thành lựa chọn thay thế tốt cho đồ họa hiển thị trên trình duyệt, tuy PNG vẫn có khả năng tương thích rộng hơn và hầu như chương trình nào cũng mở được.
Các vấn đề thường gặp
Vì sao tệp PNG của tôi nặng thế?
Lý do phổ biến nhất là một bức ảnh chụp được lưu dưới dạng PNG. Nhiễu và chi tiết nhỏ trong ảnh chụp không nén tốt theo cách không mất dữ liệu, nên cùng bức ảnh đó ở dạng JPG hoặc WebP có thể nhỏ hơn nhiều lần. Với ảnh chụp màn hình, dung lượng tệp tăng trực tiếp theo độ phân giải.
Chuyển JPG sang PNG không cải thiện chất lượng
PNG giữ nguyên các điểm ảnh như chúng đang có tại thời điểm lưu. Những mất mát và vết khối do nén JPG đã là một phần của hình ảnh trước khi chuyển đổi, và PNG cũng giữ nguyên chính xác chúng.
Độ trong suốt biến mất sau khi chuyển sang JPG
JPG không có kênh alpha. Khi chuyển đổi, các điểm ảnh trong suốt được tô bằng một màu đặc; nếu bạn không chọn màu, chương trình sẽ dùng màu mặc định (thường là trắng hoặc đen).
Màu sắc trông khác đi
PNG có thể mang hồ sơ màu và thông tin gamma. Các chương trình diễn giải những thông tin này khác nhau có thể hiển thị màu hơi khác. Dùng sRGB cho hình ảnh dành cho web là cách an toàn nhất.
Mẹo khi chuyển đổi PNG
- Thu nhỏ các tệp PNG dạng ảnh chụp. Khi chuyển PNG sang JPG, chất lượng mặc định là 90; vùng trong suốt mặc định được tô màu trắng, và bạn có thể chọn màu nền khác.
- Để giữ độ trong suốt, hãy chuyển PNG sang WebP hoặc PNG sang AVIF; cả hai định dạng đều lưu kênh alpha. Nếu mọi điểm ảnh phải giữ nguyên tuyệt đối trong WebP, hãy đánh dấu "WebP không mất dữ liệu"; tệp có thể nặng hơn.
- Thu nhỏ PNG mà vẫn giữ định dạng PNG chỉ có dư địa hạn chế: miễn là hình ảnh giữ nguyên, phần tiết kiệm chỉ đến từ việc thử bộ lọc và cách nén tốt hơn. Công cụ nén ảnh của chúng tôi mặc định chuyển PNG tĩnh sang WebP; nếu muốn giữ PNG, tùy chọn tối ưu hóa PNG bổ sung sẽ cố làm tệp nhỏ hơn mà không thay đổi một điểm ảnh nào.
- Cần biểu tượng? Công cụ chuyển PNG sang ICO đóng gói một biểu tượng vuông ở các kích thước 16, 32 và 48 điểm ảnh (và lớn hơn nếu ảnh đủ lớn) vào một tệp duy nhất.
- Các chuyển đổi này chạy ngay trong trình duyệt của bạn, nên tệp vẫn ở trên thiết bị của bạn và không bao giờ rời khỏi đó. Dữ liệu EXIF và vị trí không được ghi vào tệp kết quả.
Câu hỏi thường gặp
PNG có mất dữ liệu hay không?
PNG không mất dữ liệu. Dù bạn mở và lưu tệp bao nhiêu lần, các điểm ảnh cũng không thay đổi. Thứ mà một số công cụ gọi là "PNG có mất dữ liệu" thực chất là giảm số màu trước khi lưu để tạo PNG bảng màu; mất mát xảy ra ở bước tiền xử lý đó, không phải ở định dạng.
PNG có hỗ trợ ảnh động không?
PNG cơ bản thì không. Phần mở rộng APNG bổ sung ảnh động, và nó đã trở thành một phần của đặc tả với Ấn bản thứ ba PNG của W3C. Theo MDN, mọi trình duyệt hiện nay đều hiển thị APNG, nhưng nhiều trình chỉnh sửa ảnh chỉ mở được khung hình đầu tiên.
PNG-8 và PNG-24 nghĩa là gì?
Những cái tên này không có trong đặc tả; chúng là cách gọi tắt của phần mềm. PNG-8 thường chỉ PNG bảng màu tối đa 256 màu, PNG-24 là PNG màu thật 24 bit mỗi điểm ảnh, còn PNG-32 là PNG RGBA có kênh alpha.
Nên dùng PNG hay WebP?
Nếu hình ảnh sẽ hiển thị trên trang web, WebP thường cho tệp nhỏ hơn và cũng giữ được độ trong suốt. Nếu bạn sẽ chỉnh sửa ảnh trong chương trình khác, gửi cho người khác hoặc lưu trữ, PNG có khả năng tương thích rộng hơn.
PNG có phù hợp để in không?
Về chất lượng thì có, vì nó không mất dữ liệu, nhưng PNG không hỗ trợ hệ màu CMYK. Quy trình in chuyên nghiệp thường ưu tiên TIFF hoặc PDF.
Nguồn tham khảo
- W3C: Portable Network Graphics (PNG) Specification (Third Edition)
- W3C: tổng quan và lịch sử PNG
- Greg Roelofs: History of the Portable Network Graphics (PNG) Format
- Library of Congress: mô tả định dạng PNG
- Google for Developers: An image format for the Web (WebP)
- MDN: Image file type and format guide
- W3Techs: Usage statistics of image file formats for websites
- HTTP Archive Web Almanac 2024: Media


