Ghi chú từ đội ngũ về tay nghề, định dạng và những quyết định nhỏ đằng sau một bản cắt tròn tốt.
Vùng chứa không mất dữ liệu, PNG lưu những gì
Nền tảng của PNG là DEFLATE, một thuật toán thuộc loại không mất dữ liệu. Trước tiên nó ghi xuống từng bộ giá trị RGBA của mỗi điểm ảnh đúng y như thế, rồi quét qua mỗi hàng một bộ lọc có thể đảo ngược, sau cùng siết cả khối lại bằng một luồng họ zlib. Cụm không mất dữ liệu ở đây mang nghĩa đơn giản, thứ bạn bung ra trùng khít từng byte với thứ bạn nhét vào. Đặt vào ngữ cảnh JPG sang PNG, thứ nhét vào chính là các điểm ảnh mà trình duyệt giao trả sau khi bóc tách JPEG, vốn đã đeo sẵn từng phép làm gần đúng mà lần mã hóa JPEG nguyên thủy gài vào. Bởi vậy PNG chép lại một cách trung thành chính các phép gần đúng đó, chứ tuyệt nhiên không phải khung cảnh thật từng được ghi hình. Cân thử thì rõ, một JPEG 17 KB cỡ 1024x768 đáp xuống cận 105 KB dạng PNG, còn một JPEG 116 KB cỡ 3840x2160 chạm ngưỡng quanh 384 KB. Mấy con số nhân ấy bám chặt vào độ phân giải chứ chẳng dính dáng nấc chất lượng JPEG, vậy nên chúng đứng khá vững khi nội dung đổi thay. Cái giá trị mà vùng chứa giành được nằm ở chỗ nó ghìm lại đà sa sút, không phải ở chỗ lật ngược nó.
Vì sao chất lượng JPEG không thể khôi phục
JPEG buông thông tin đi vĩnh viễn. Phép nén của nó chạy một biến đổi cosine ngang qua các khối 8x8, làm tròn các hệ số tần số xuống một tập thô hơn, và lưu những con số đã làm tròn đó. Việc làm tròn ấy chỉ đi một chiều, nên một hệ số đọc là 47 trước khi bị bẻ thành 50 không bao giờ được đẩy về, và tệp chẳng giữ ký ức nào về số 47. Giải mã JPEG dựng lại điểm ảnh từ các hệ số đã làm tròn, vốn là những phỏng đoán về bản gốc. Gói những phỏng đoán đó trong PNG và bạn nhận một bản sao hoàn hảo của một bức ảnh có tì vết. Chẳng điều nào trong đây là khiếm khuyết của PNG hay của Araluma, đó chỉ là cách nén mất dữ liệu vận hành, với bất cứ thứ gì bị bỏ lúc mã hóa thì ở lại trạng thái bị bỏ. Lối duy nhất tới chất lượng JPEG tốt hơn là quay về nguồn chưa nén hoặc tệp RAW.
Mức tăng dung lượng tệp đo được
Một JPG phình bao nhiêu trên đường tới PNG tùy vào bức ảnh, nhưng xu thế thì vững. Những bức ảnh chụp bận rộn với chuyển sắc giàu phình nhiều nhất, vì đó là chất liệu mà JPEG nén tuyệt vời còn bộ mã không mất dữ liệu của PNG không theo kịp trên những điểm ảnh nhiễu như thế. Từ các thử nghiệm của chính công cụ này, một bức ảnh JPEG 17 KB ở 1024x768 thành một PNG 105 KB, khoảng một bước nhảy gấp sáu, và một bức ảnh JPEG 116 KB ở 3840x2160 thành một PNG 384 KB, cỡ 3,3 lần lớn hơn. Chất liệu phẳng như ảnh chụp màn hình và biểu tượng hợp với JPEG kém ngay từ đầu và có khuynh hướng nặng hơn ở đó, nên PNG của nó tăng ít gắt hơn. Bài học rõ ràng, nếu một đầu ra nhỏ hơn là thứ bạn đuổi theo, biến một JPG thành một PNG đẩy bạn đi sai hướng.
Độ trong suốt, khả năng so với nội dung
Cái kênh alpha 8-bit mà PNG mang theo là một tính năng thuộc về vùng chứa, cho phép bất kỳ điểm ảnh nào cũng đeo được một mức mờ trải từ 0 nghĩa là trong veo cho tới 255 nghĩa là đặc kín. Lúc một JPG được tái dựng thành PNG nhờ bộ máy ảnh nền tảng, hết thảy điểm ảnh hiện ra ở mức 255, đặc kín hoàn toàn, lý do là chính cái JPG ngay từ vạch xuất phát đã chẳng có chút trong suốt nào để bàn giao lại. PNG cứ thế đứng chực sẵn để chứa dữ liệu alpha, có điều tệp lại trống trơn, bởi nguồn vốn dĩ trống trơn. Muốn rót độ trong suốt vào bức ảnh phải cậy đến một thao tác tách bạch, hoặc lấy tay che nền trong một trình biên tập, hoặc thả một bộ gỡ nền tự động vào cuộc. Một bộ gỡ được tinh chỉnh để nhận diện chủ thể đủ sức trao ra một PNG đeo alpha thứ thiệt bằng cách kéo mức mờ của đám điểm ảnh nền về số không sau khi chuyển đổi.
Xử lý siêu dữ liệu EXIF
Khi tệp được dựng lại, các thẻ EXIF, IPTC và XMP của nó rơi khỏi PNG trên mọi trình duyệt, mang theo tọa độ GPS, thân máy ảnh, ngày chụp, dòng bản quyền, và bất cứ XMP tùy chỉnh nào JPG đang giữ. Hồ sơ màu rẽ một chút khác. Chrome và Safari giữ thẻ sRGB trên thứ ra, còn Firefox buông nó cùng mọi thứ còn lại. Vậy nên PNG an toàn sRGB ở bất cứ đâu bạn mở, dù một hồ sơ gam rộng như Display-P3 hay Adobe RGB sẽ không sống qua Firefox. Với web và chia sẻ thường ngày, bỏ các thẻ là một điểm cộng, gọt bớt một chút trọng lượng và lột dữ liệu vị trí khỏi ảnh của bạn. Với công việc chuyên nghiệp hay lưu trữ phải giữ siêu dữ liệu nhúng của nó, hãy quản chuỗi đó bằng một công cụ chuyên dụng trước hoặc sau khi bạn chuyển đổi.
Quyền riêng tư và nơi công việc rơi vào
Nơi công việc rơi vào tùy vào số lượng. Với một ảnh, không gì rời trình duyệt, và bạn có thể kiểm tra trực tiếp trong vài giây. Mở Chrome DevTools, chuyển sang bảng Mạng, lọc theo XHR và Fetch, rồi chuyển đổi một tệp. Không gì xuất hiện trong lúc mã hóa chạy. Với hai tệp trở lên, Araluma gửi chúng tới máy chủ của chúng tôi, nơi chuyển đổi, gom kết quả, và trả về một liên kết tải xuống. Liên kết đó và các tệp đã chuyển bị xóa trong khoảng 2 giờ. Lối đi cho một ảnh giữ mọi thứ trên thiết bị, ngoài mạng, trong khi một lô đánh đổi điều đó lấy việc hoàn tất nhiều tệp một lúc. Với ảnh chụp màn hình điều gì đó riêng tư hoặc ảnh gắn vị trí của bạn, chuyển từng cái một giữ nó trên máy của bạn, một khác biệt thực sự, không phải khẩu hiệu.