Tôi gặp vấn đề với cách Photoshop xử lý các pixel hoàn toàn trong suốt khi xuất dưới dạng PNG, đó là các kênh màu đỏ, xanh lục và xanh lam của bất kỳ pixel hoàn toàn trong suốt nào được lưu thành 0 thay vì màu mà tôi xác định trong Photoshop .
Ví dụ: Tôi có tệp PSD với mặt nạ lớp. Một số phần màu của hình ảnh được làm hoàn toàn trong suốt bởi mặt nạ lớp, nhưng tôi vẫn muốn các kênh màu gốc được ghi vào tệp PNG thay vì chỉ 0.
(Vâng, định dạng PNG bản thân không chứa dữ liệu RGB ngay cả đối với pixel hoàn toàn trong suốt. Đây là một vấn đề với Photoshop, không PNG.)
Nếu bạn đang tự hỏi tại sao việc dữ liệu màu lại quan trọng khi một pixel hoàn toàn trong suốt thì đây là một vài trường hợp sử dụng:
- PNG đang được lấy mẫu ở độ phân giải cao hơn mức được lưu và các giá trị được lấy mẫu được nội suy giữa các pixel lân cận. Điều này có thể dẫn đến một "quầng sáng" màu đen mờ xung quanh hình ảnh nếu phép nội suy không có trọng số trong suốt. (Trong trường hợp của tôi, việc lấy mẫu lên này đang được thực hiện trên GPU, vì lý do hiệu suất không cân nhắc bởi tính minh bạch.)
- Các kênh đỏ, lục, lam và alpha trong tệp PNG đang được sử dụng cho các mục đích khác ngoài việc lưu trữ thông tin màu. (Trong trường hợp của tôi, tôi sử dụng tất cả bốn kênh để lưu trữ dữ liệu cần thiết cho việc tính toán ánh sáng theo thời gian thực.)
Cảm ơn bạn đã giúp đỡ!
BIÊN TẬP
Tôi sẽ cố gắng giải thích vấn đề tôi gặp phải khi sử dụng một số phương tiện trực quan. Hiển thị những thứ minh bạch là khó, nhưng hy vọng điều này làm cho vấn đề của tôi rõ ràng hơn:
Tôi có một tệp PSD với một lớp và mặt nạ lớp. Lớp màu trông như thế này:
Mặt nạ lớp của nó trông như thế này:
Nếu tôi xuất tệp PSD này dưới dạng PNG, tôi sẽ nhận được:
(Các vùng màu trắng thực sự trong suốt; chúng chỉ nhìn màu trắng trên nền trắng.)
Bạn có thể tự hỏi: vấn đề là gì? Điều đó có vẻ đúng! Vâng, vấn đề là với thông tin màu được lưu trữ trong các pixel trong suốt đó. Sử dụng một công cụ để loại bỏ dữ liệu độ mờ khỏi PNG trong khi vẫn giữ nguyên RGB, chúng ta có thể thấy thông tin màu mà Photoshop lưu vào các pixel trong suốt:
Như bạn có thể thấy, Photoshop đã thay thế thông tin màu trong các pixel trong suốt bằng màu đen. Trong khi đó, với dữ liệu độ mờ được xóa khỏi PNG, tôi muốn nó trông giống hệt như lớp màu gốc: