tooly

Nén ảnh PNG online

Giảm dung lượng PNG theo cách của pngquant: màu được rút gọn thành bảng màu tối ưu trông giống hệt trên màn hình, độ trong suốt vẫn nguyên vẹn. Mọi thứ chạy trong trình duyệt.

Tệp của bạn không bao giờ rời khỏi trình duyệt

Cách sử dụng

  1. 1

    Chọn mức chất lượng — Cao giữ 256 màu và trông giống hệt với hầu hết đồ họa.

  2. 2

    Thả tệp PNG vào ô hoặc nhấp để chọn.

  3. 3

    Tải từng PNG đã nén hoặc tải tất cả dưới dạng ZIP.

Vì sao tệp PNG nặng ngay từ đầu

PNG là định dạng lossless: mọi điểm ảnh được lưu chính xác, và cách tiết kiệm duy nhất đến từ một bộ nén đa dụng tương tự ZIP. Một tệp PNG điển hình từ công cụ chụp màn hình hay ứng dụng thiết kế được lưu ở dạng truecolour kèm kênh alpha, tức 4 byte cho mỗi điểm ảnh trước khi nén. Một ảnh chụp màn hình 1920×1080 có khoảng 8 MB dữ liệu điểm ảnh thô, và ngay cả sau khi nén thường vẫn rơi vào khoảng 1 đến 3 MB.

Phần lớn thông tin đó không được dùng đến. Ảnh chụp màn hình một trang web có thể chỉ chứa vài trăm màu khác nhau. Một logo có thể có chừng chục màu, cộng thêm các sắc độ khử răng cưa dọc theo viền. Lưu mỗi điểm ảnh bằng một giá trị 32 bit đầy đủ là quá thừa cho loại ảnh đó, và đây chính là khoảng trống mà công cụ này tận dụng.

Lượng tử hóa bảng màu hoạt động thế nào

Thay vì lưu một màu cho mỗi điểm ảnh, PNG dạng indexed giữ một bảng màu tối đa 256 màu và lưu mỗi điểm ảnh bằng một byte trỏ vào bảng đó. Công việc nằm ở việc chọn bảng màu. Công cụ liên tục chia các màu của ảnh thành từng nhóm theo hướng mà chúng khác nhau nhiều nhất, cho đến khi có số nhóm bằng mức bạn chọn, rồi dùng giá trị trung bình của mỗi nhóm làm một mục trong bảng màu. Sau đó mỗi điểm ảnh được ánh xạ đến mục gần nhất.

Độ trong suốt là một phần của cùng quá trình: mỗi mục trong bảng màu mang giá trị alpha riêng, nên một bóng đổ mềm hay viền khử răng cưa trên nền trong suốt được giữ lại dưới dạng vài màu bán trong suốt trong bảng màu thay vì bị cắt cứng.

Ba nút đặt kích thước bảng màu:

  • Cao · 256: số màu tối đa mà một PNG dạng bảng màu chứa được. Biểu tượng, logo, ảnh chụp giao diện và sơ đồ thường trông giống hệt bản gốc.
  • Vừa · 128: vẫn sạch với đồ họa phẳng và hình minh họa có bộ màu hạn chế. Đáng thử với ảnh chụp màn hình giao diện.
  • Thấp · 64: cho tác phẩm đơn giản như biểu đồ, hình vẽ nét và biểu tượng ít màu. Các dải chuyển tinh tế bắt đầu lộ ra bậc thang.

Sau đó ảnh được ghi ra bằng cơ chế nén chuẩn của PNG và giữ nguyên tên tệp gốc.

Ảnh nào phù hợp, ảnh nào không

Lượng tử hóa phát huy tốt nhất với nội dung được tạo bằng kỹ thuật số:

  • Ảnh chụp màn hình ứng dụng và trang web, nhất là những ảnh có vùng màu phẳng lớn.
  • Logo, biểu tượng và huy hiệu có độ trong suốt.
  • Biểu đồ, sơ đồ, bản đồ và bản mô phỏng giao diện.
  • Pixel art, thường còn nguyên vẹn ngay cả ở mức Thấp.

Nó gặp khó với dải chuyển màu mượt và ảnh chụp. Công cụ ánh xạ mỗi điểm ảnh đến màu gần nhất trong bảng màu mà không dùng dithering, nên bầu trời hay hiệu ứng tối viền mềm vốn cần hàng nghìn sắc độ sẽ biến thành các dải màu nhìn thấy rõ. Với ảnh chụp, định dạng nén mất dữ liệu làm tốt hơn: hãy đưa chúng qua chuyển PNG sang JPG nếu không cần độ trong suốt, hoặc giữ độ trong suốt với chuyển PNG sang WebP.

Kiểm tra kết quả

Mỗi dòng tệp hiển thị dung lượng gốc và dung lượng mới cạnh nhau. Nếu lượng tử hóa không thể làm tệp nhỏ hơn, công cụ trả lại bản gốc nguyên vẹn và dòng tệp ghi rằng bản gốc được giữ nguyên. Điều này xảy ra với PNG vốn đã ở dạng indexed hoặc đã được công cụ khác tối ưu mạnh, và với ảnh chứa đầy nhiễu mịn.

Để đánh giá chất lượng, hãy mở bản gốc và kết quả cạnh nhau trong so sánh hai hình ảnh rồi kéo thanh trượt qua các dải chuyển màu và đường viền. Nếu thấy hiện tượng phân dải, hãy tăng lên một mức; nếu Vừa trông giống hệt Cao, hãy lấy tệp nhỏ hơn.

Ghi chú thực tế

  • Các khối văn bản và siêu dữ liệu của bản gốc, như phần mềm tạo ảnh hay chú thích nhúng, không được giữ lại, vì ảnh được giải mã và ghi lại từ đầu. Tệp được trả lại không đổi do không thể làm nhỏ hơn thì vẫn giữ chúng.
  • Chỉ nhận đầu vào PNG. Tệp đến 50 MB mỗi tệp đều được, nhưng ảnh rất lớn mất nhiều thời gian hơn: mọi điểm ảnh phải được phân tích để dựng bảng màu, nên một ảnh PNG 6000×4000 có thể lâu hơn hẳn một ảnh chụp màn hình.
  • Việc xử lý diễn ra trong một worker chạy nền trong trình duyệt khi được hỗ trợ. Không có gì được tải lên, và một loạt tệp có thể được tải về dưới dạng một tệp ZIP duy nhất.
  • Thu nhỏ kích thước trước thường quan trọng hơn bảng màu. Một ảnh chụp màn hình retina 2× được đưa về kích thước hiển thị chỉ còn một phần tư số điểm ảnh trước khi lượng tử hóa bắt đầu.

Câu hỏi thường gặp

Ảnh của tôi có bị tải lên không?

Không. Lượng tử hóa chạy trong trình duyệt (trong Web Worker), tệp không bao giờ rời khỏi thiết bị.

Vẫn là PNG mà sao nhỏ hơn?

PNG không mất dữ liệu, nhưng ảnh 24-bit có thể chuyển sang bảng màu 8-bit. Với 256 màu được chọn tốt, hầu hết đồ họa trông như cũ và nhỏ đi 50–70%.

Độ trong suốt có được giữ không?

Có, kể cả các cạnh bán trong suốt. Kênh alpha là một phần của bảng màu.

Khi nào nên dùng JPG?

Với ảnh chụp. Lượng tử hóa PNG hữu ích nhất cho logo, biểu tượng, ảnh màn hình và minh họa phẳng; ảnh chụp thường nhỏ hơn ở dạng JPG hoặc WebP.

Vì sao tệp không nhỏ đi?

Ảnh đã dùng bảng màu nhỏ hoặc dithering nặng có thể không được lợi. Công cụ không bao giờ trả về tệp lớn hơn bản gốc.

Đọc thêm

Công cụ liên quan