Chuyển đến nội dung

Chuyển APNG sang GIF

PNG động là một kiểu GIF có màu đẹp hơn mà nửa internet coi như ảnh tĩnh. Biến nó thành GIF thực sự chuyển động ở nơi bạn đăng, giữ mọi khung hình. Không lưu trữ gì cả.

  • Không bao giờ lưu trữ
  • Không xếp hàng, không phải chờ
  • Không cần đăng ký, không watermark

Cách hoạt động

1

Thêm PNG động

Chúng thường có đuôi .png, đôi khi là .apng; cả hai đều được nhận. PNG thường cũng dùng được và cho ra GIF một khung hình.

2

Chuyển đổi

Mỗi khung hình được đọc cùng thời gian riêng của nó và ghi vào GIF với bảng màu dựng từ chính bức ảnh — 256 màu, hoặc ít hơn để file nhỏ hơn.

3

Tải xuống

Từng file hoặc dưới dạng ZIP. Dòng thông tin của mỗi file cho biết có bao nhiêu khung hình được giữ lại.

APNG là gì

APNG là một file PNG thông thường có thêm ba loại chunk — acTL báo hiệu ảnh động, fcTL đứng trước mỗi khung hình với kích thước, vị trí, độ trễ và cách loại bỏ khung trước, và fdAT chứa pixel của khung hình — được chèn vào sao cho trình xem không biết đến chúng sẽ thấy một ảnh PNG tĩnh bình thường. Khả năng tương thích ngược đó là mục đích vào năm 2004 và là vấn đề ngày nay: phần mềm chỉ kiểm tra phần đầu file sẽ xếp nó vào loại “ảnh” và không bao giờ xem tiếp.

Mỗi khung hình được ghép theo chỉ dẫn của file — khung hình có thể chỉ phủ một phần khung vẽ và hòa trộn lên hoặc thay thế những gì có sẵn — thành một bức ảnh hoàn chỉnh, rồi được lượng tử hóa về một bảng màu và ghi vào GIF với cùng độ trễ. Bộ lượng tử hóa dựng 256 màu từ chính khung hình và áp dụng dithering; hình vẽ màu phẳng và sticker pixel-art, vốn là phần lớn nội dung APNG, được chuyển sang gần như không thay đổi. Độ trễ dưới 20 ms được nâng lên 100 ms, như trình duyệt vẫn làm với GIF.

Độ trong suốt trở thành loại một bit: một pixel hoặc hiện hoặc không. Một sticker APNG có bóng đổ mềm sẽ có viền sắc nét thay vào đó, cắt ở mức nửa độ mờ. Đó là giới hạn của GIF chứ không phải của việc chuyển đổi, và cách duy nhất để tránh là dùng định dạng có kênh alpha thực sự — WebP, nếu nơi nhận phát được.

Khi bạn cần công cụ khác

ffmpeg đọc được APNG và ghi GIF với bảng màu hai lượt: ffmpeg -i in.png -vf "split[a][b];[a]palettegen[p];[b][p]paletteuse" out.gif. Nó cũng có các lựa chọn dithering mà trang này không có, điều quan trọng với dải chuyển màu.

Nếu nơi nhận phát được APNG — mọi trình duyệt hiện nay đều được, iMessage và hầu hết nền tảng sticker cũng vậy — hãy giữ file APNG. Nó có độ trong suốt thực sự và đầy đủ màu, còn GIF là bản sao để tương thích, vừa nặng hơn vừa kém hơn.

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

Làm sao biết file PNG của tôi là ảnh động?

Mở nó trong Chrome, Firefox hoặc Safari: cả ba đều phát APNG, nên nếu nó chuyển động ở đó mà không chuyển động ở nơi bạn đăng, thì đó là APNG và đây là trang bạn cần. Dòng thông tin ở đây cũng cho biết đã tìm thấy bao nhiêu khung hình.

File GIF có giữ đúng thời gian không?

Có. Ở cả hai định dạng, mỗi khung hình mang độ trễ riêng và độ trễ đó được sao chép sang, nên một đoạn nảy 12 khung hình vẫn là 12 khung hình với cùng tốc độ.

Vì sao file GIF trông nhiều hạt hơn?

Một khung APNG có 16 triệu màu và độ trong suốt mượt; một khung GIF chỉ có 256 màu và không có độ trong suốt mượt. Bảng màu được dựng từ chính bức ảnh và có dithering, hạt đến từ đó. Hình vẽ màu phẳng — nội dung thường gặp của APNG — hầu như không lộ ra.

Còn file PNG không phải ảnh động thì sao?

Nó được chuyển thành GIF một khung hình và dòng thông tin sẽ ghi rõ. Với ảnh tĩnh, gần như chắc chắn bạn nên giữ file PNG, hoặc dùng Chuyển PNG sang WEBP để có file nhỏ hơn.

File của tôi có bị lưu ở đâu không?

Không — không lưu trữ gì cả, ở bất kỳ bước nào.

Vì sao Discord hay Slack hiển thị sticker của tôi thành ảnh tĩnh?

Nhiều biểu mẫu tải lên nhận ra phần đầu file PNG, coi file là ảnh tĩnh và chỉ giữ khung hình đầu tiên. Cũng những dịch vụ đó lại phát GIF đầy đủ. Chuyển đổi là cách khắc phục chắc chắn; phương án khác là WebP, nếu được hỗ trợ.

Nên biết: GIF chứa 256 màu mỗi khung hình và không có độ trong suốt từng phần, nên viền mềm trở thành viền cứng và dải chuyển màu hơi bị sọc. Đọc các khung hình của APNG cần Chrome, Edge hoặc Opera bản mới; ở trình duyệt khác, khung hình đầu tiên được ghi thành ảnh tĩnh và dòng thông tin sẽ ghi rõ.

Đặt công cụ này lên website của bạn

Miễn phí cho mọi blog, trang lớp học hay bài viết hướng dẫn. Chỉ cần dán một đoạn mã là khách truy cập có thể dùng ngay trên trang của bạn.