Bagaimana cara memberitahu Photoshop untuk mempertahankan warna RGB dari piksel yang sepenuhnya transparan saat mengekspor sebagai PNG?

12

Saya mengalami masalah dengan cara Photoshop menangani piksel yang sepenuhnya transparan saat mengekspor sebagai PNG, yaitu saluran warna merah, hijau, dan biru dari setiap piksel yang sepenuhnya transparan disimpan sebagai 0 alih-alih warna yang saya tetapkan di Photoshop .

Sebagai contoh: Saya punya file PSD dengan layer mask. Beberapa bagian berwarna dari gambar dibuat sepenuhnya transparan oleh layer mask, tetapi saya masih ingin saluran warna asli ditulis ke file PNG, bukan hanya 0.

(Ya, format PNG itu sendiri tidak berisi data RGB bahkan untuk piksel sepenuhnya transparan. Ini adalah masalah dengan Photoshop, tidak PNG.)

Jika Anda bertanya-tanya mengapa data warna penting ketika sebuah piksel benar-benar transparan, maka berikut adalah beberapa kasus penggunaan:

  • PNG disampel pada resolusi yang lebih tinggi daripada yang disimpan karena nilai-nilai sampel diinterpolasi di antara piksel tetangga. Ini dapat menghasilkan "lingkaran hitam" pudar di sekitar gambar jika interpolasi tidak tertimbang oleh transparansi. (Dalam kasus saya, pengambilan sampel ini sedang dilakukan pada GPU, yang karena alasan kinerja tidak mempertimbangkan transparansi.)
  • Saluran merah, hijau, biru, dan alfa dalam file PNG digunakan untuk tujuan selain menyimpan informasi warna. (Dalam kasus saya, saya menggunakan keempat saluran untuk menyimpan data yang dibutuhkan untuk perhitungan pencahayaan waktu nyata.)

Terima kasih atas bantuan Anda!

EDIT

Saya akan mencoba menjelaskan masalah yang saya alami dengan menggunakan beberapa alat bantu visual. Menunjukkan hal-hal yang transparan itu sulit, tetapi mudah-mudahan ini membuat masalah saya lebih jelas:

Saya punya file PSD dengan satu layer dan layer mask. Lapisan warna terlihat seperti ini:

masukkan deskripsi gambar di sini

Layer mask-nya terlihat seperti ini:

masukkan deskripsi gambar di sini

Jika saya mengekspor file PSD ini sebagai PNG, saya mendapatkan ini:

masukkan deskripsi gambar di sini

(Daerah putih memang transparan; mereka hanya terlihat putih dengan latar belakang putih.)

Anda mungkin bertanya-tanya: Apa masalahnya? Itu terlihat benar! Nah, masalahnya adalah dengan informasi warna yang disimpan dalam piksel transparan tersebut. Menggunakan alat untuk menghapus data opacity dari PNG sambil membiarkan RGB tetap utuh, kita bisa melihat informasi warna yang disimpan Photoshop ke piksel transparan:

masukkan deskripsi gambar di sini

Seperti yang Anda lihat, Photoshop telah mengganti informasi warna dalam piksel transparan dengan hitam. Sedangkan, dengan data opacity dihapus dari PNG, saya ingin itu terlihat persis seperti lapisan warna asli:

masukkan deskripsi gambar di sini

Walt D
sumber
Menampilkan contoh dari apa yang Anda alami mungkin lebih bermanfaat. Terutama karena, tidak boleh ada informasi warna di bagian transparan PNG. Bagaimana cara Anda menghemat PNG? Apakah Anda menggunakan "Simpan untuk Web" dan apakah Anda memiliki "transparansi" dicentang? Saya tahu kedengarannya mendasar tetapi tidak yakin bagaimana Anda mendapatkan hasil Anda.
ErickP
Ya, saya tidak memposting contoh gambar karena Anda tidak dapat benar-benar melihat masalah (tanpa memuat PNG dalam program cat dan mematikan transparansi), karena masalahnya hanya dengan piksel yang benar-benar transparan. Saya akan melihat apakah saya bisa menemukan cara untuk memvisualisasikan apa yang saya bicarakan.
Walt D
Tetapi ketika Anda mengatakan "tidak boleh ada informasi warna di bagian transparan PNG", saya benar - benar ingin ada informasi warna di bagian transparan PNG. Saya tahu itu terdengar aneh, tetapi ada beberapa aplikasi tertentu, seperti dua yang saya sebutkan di atas. (Dan ya, PNG sepenuhnya mendukung informasi warna di wilayah transparannya; Saya menggunakannya sepanjang waktu di PNG yang dihasilkan secara prosedural. Masalahnya adalah bagaimana Photoshop menyimpan daerah transparan ke PNG.)
Walt D
1
@ DA01 Saya tidak berpikir itu bug sebanyak optimisasi yang dilakukan Photoshop (PNG dengan warna seragam mengambil lebih sedikit ruang disk) yang melanggar use case khusus saya.
Walt D
1
@ErickP Terima kasih telah mencoba membantu, saya sangat menghargainya. :) Syukurlah, GPU cukup standar akhir-akhir ini, dan peningkatan jenis ini (dikenal sebagai interpolasi bilinear) bekerja persis sama di semua dari mereka, jadi solusi apa pun yang saya temukan akhirnya harus bekerja secara universal.
Walt D

Jawaban:

10

Saya menemukan solusinya! The SuperPNG Plugin akan melestarikan nilai-nilai RGB untuk piksel transparan selama Anda meninggalkan "Clean Transparan" pilihan dicentang.

Walt D
sumber
Saya ingin tahu apakah ada Photoshop CC yang setara dengan SuperPNG?
Marcel Wilson