Làm cách nào để bảo Photoshop bảo toàn màu RGB của các pixel trong suốt khi xuất dưới dạng PNG?


12

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:

nhập mô tả hình ảnh ở đây

Mặt nạ lớp của nó trông như thế này:

nhập mô tả hình ảnh ở đây

Nếu tôi xuất tệp PSD này dưới dạng PNG, tôi sẽ nhận được:

nhập mô tả hình ảnh ở đây

(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ập mô tả hình ảnh ở đây

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:

nhập mô tả hình ảnh ở đây


Hiển thị một ví dụ về những gì bạn đang trải nghiệm có thể hữu ích hơn. Chủ yếu là vì, không nên có bất kỳ thông tin màu nào trong phần trong suốt của PNG. Làm thế nào bạn tiết kiệm được PNG? Bạn có đang sử dụng "Save for Web" và bạn đã kiểm tra "độ trong suốt" chưa? Tôi biết nó nghe có vẻ cơ bản nhưng không chắc bạn nhận được kết quả như thế nào.
ErickP

Vâng, tôi đã không đăng bất kỳ hình ảnh ví dụ nào vì bạn thực sự không thể nhìn thấy vấn đề (không tải PNG trong chương trình vẽ và tắt độ trong suốt), vì vấn đề chỉ xảy ra với các pixel hoàn toàn trong suốt. Tôi sẽ xem liệu tôi có thể đưa ra một cách để hình dung những gì tôi đang nói không.
Walt D

Nhưng khi bạn nói "không nên có bất kỳ thông tin màu nào trong phần trong suốt của PNG", tôi thực sự muốn có thông tin màu trong phần trong suốt của PNG. Tôi biết rằng âm thanh nặng hơn, nhưng có một số ứng dụng nhất định, chẳng hạn như hai ứng dụng tôi đã đề cập ở trên. (Và có, PNG hoàn toàn hỗ trợ thông tin màu ở các vùng trong suốt của nó, tôi sử dụng nó mọi lúc trong PNG procedurally tạo Vấn đề là với cách Photoshop sẽ lưu vùng trong suốt đối với PNG..)
Walt D

1
@ DA01 Tôi không nghĩ đó là một lỗi nhiều như việc tối ưu hóa Photoshop (PNG với màu sắc đồng nhất chiếm ít không gian đĩa hơn) đang phá vỡ trường hợp sử dụng cụ thể của tôi.
Walt D

1
@ErickP Cảm ơn bạn đã cố gắng giúp đỡ, tôi thực sự đánh giá cao nó. :) Rất may, ngày nay GPU khá chuẩn và loại nâng cấp này (được gọi là nội suy song tuyến tính) hoạt động giống hệt nhau trên tất cả chúng, vì vậy, bất kỳ giải pháp nào tôi tìm thấy cuối cùng cũng sẽ hoạt động phổ biến.
Walt D

Câu trả lời:


10

Tôi tìm thấy một giải pháp! Các SuperPNG plugin sẽ gìn giữ các giá trị RGB cho pixel trong suốt chừng nào bạn rời khỏi "Clean Transparent" tùy chọn đánh dấu.


Tôi tò mò liệu có Photoshop CC tương đương với SuperPNG không?
Marcel Wilson
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.