Menyalin PNG dengan transparansi dari browser menunjukkan latar belakang hitam


47

Ketika saya menyalin gambar PNG dengan transparansi ke clipboard dan kemudian menempelkannya ke Photoshop, Paint, dll. - transparansi berubah menjadi hitam.

Apakah ada solusi untuk ini? Apakah ini masalah browser, masalah aplikasi atau masalah OS dengan clipboard?

Saya menggunakan Windows 7 dan diuji dengan Chrome dan Internet Explorer versi terbaru.


1
Tolong jelaskan. Apa sebenarnya yang Anda salin? The .pngfile atau bitmap nya ketika sedang dibuka di editor / viewer? Jika itu file, maka Photoshop (harus) dapat membuka file dengan benar, transparansi, dan semuanya. Jika itu adalah piksel aktual gambar, maka itu tergantung pada program sumber dan apakah itu menempatkan data transparansi di clipboard atau tidak.
Synetech

Semacam tergantung pada OS. Clipboard tampaknya tidak dapat memuat gambar semitransparan, tetapi beberapa browser menyimpan tautan gambar sebagai gantinya - ini, ketika ditempelkan, transparansi tidak diubah.
Tomáš Zato

Jika Anda membuka file .png dengan transparansi di MS Paint (Windows 10) atau Firefox 60.0.2 latar belakang ditampilkan sebagai putih. Jika Anda membuka file yang sama di IrfanView atau Chrome 67.0.3396.87 latar belakang ditampilkan sebagai hitam. Jika Anda membuka file yang sama di Paint.NET, latar belakang ditampilkan sebagai kotak-kotak abu-dan-putih. Jika Anda membukanya dengan Paint 3D latar belakang ditampilkan sebagai krem. Jika Anda menyalin dari MS Paint, latar belakang menjadi buram putih. Jika Anda menyalin dari Paint.NET latar belakang transparan tersimpan di clipboard Win10, jadi apa yang terjadi tergantung pada program apa yang Anda tempelkan.
Dave Burton

Jawaban:


30

Copy-Paste tidak menjaga transparansi. Coba simpan file dan gunakan Open Filedi Photoshop. AFAIK, Paint tidak memiliki kemampuan untuk menyimpan transparansi file png yang diaktifkan.


4
Ya, inilah yang saya lakukan. Saya hanya berharap ada cara lain di sekitarnya.
Ryan Elkins

2
@ryan FWIW, sepertinya ini adalah bug di sisi Photoshop. Ini bekerja di Paint.net, ketika disalin dari IE, FF, atau Chrome. Saya pikir mungkin solusinya adalah "Tempel di Paint.net, pilih semua, salin, tempel di Photoshop", tapi itu tidak berhasil - Anda mendapatkan gambar putih bukan hitam, tetapi masih tanpa transparansi.
Kip

9
Hanya sebuah catatan; Anda dapat membuka URL di Photoshop, menghemat langkah menengah Anda; Windows ( Saya yakin OS lain akan melakukan hal yang sama ) akan mengunduhnya ke file sementara lokal, dan terbuka. Ini ( saya baru saja mengamati ) mempertahankan transparansi.
Dan Lugg

> Copy-Paste tidak menjaga transparansi. Itu tergantung pada sumber data clipboard.
Synetech

Jika disisipkan di PowerPoint / Word, transparansi akan disimpan.
Xiao Peng - ZenUML.com

11

Posting komentar oleh @DanLugg sebagai jawaban, karena ini adalah yang paling nyaman untuk Windows , IMHO:

  1. Klik kanan pada gambar dan Copy Image URLdari browser.
  2. Di Photoshop pilih File->Open(ctrl-o) dan tempel URL ke bagian nama file dari dialog.
    • Photoshop / Windows akan mengunduh URL ke file sementara dan membukanya.

Untuk OS X , tidak ada bidang dalam Open File Dialog / Sheet di mana orang dapat menempelkan URI. Sebagai gantinya, Anda harus mengunduh file dan membukanya (mis. Seret dari browser ke Desktop, lalu seret file baru ke Dok atau ke dalam dokumen Photoshop Anda) lalu hapus file sementara.


FWIW, ini tampaknya merupakan masalah Photoshop , bukan masalah browser atau OS. Pada OS X dan Windows, saya dapat menyalin gambar PNG dengan transparansi dari Chrome (dan juga Safari di OS X) dan menempelkannya ke Illustrator atau aplikasi lain dan memilikinya menjaga transparansi. Photoshop sendiri yang harus disalahkan.


Ini jenius, tidak tahu Photoshop bisa membuka langsung dari URL! Temuan bagus!
Doggie52

1
Opsi ini sepertinya tidak tersedia untuk OSX. Ada yang tahu?
Christine Cooper

@ChristineCooper Pilihan terbaik yang saya tahu untuk OS X adalah mengunduh gambar, lalu membuka, lalu menghapus yang asli. Ini semudah menyeret gambar ke folder atau Desktop (yang menyimpan sebagai file), lalu menyeret file itu ke Photoshop di Dock, atau ke dokumen Photoshop yang terbuka. Saya telah menguji berbagai opsi menggunakan Chrome dan Safari bersama dengan Photoshop CS6, dan saya tidak dapat menemukan cara yang lebih baik, atau cara apa pun menggunakan clipboard.
Phrogz

Ya, saya berusaha menghindari pengunduhan dan membuka opsi dan pada dasarnya ingin mengurangi langkah-langkahnya. Seret dan lepas juga tidak berfungsi. Semoga, pengguna OSX akan dapat menempel URL ke Photoshop di masa depan. Terima kasih!
Christine Cooper

Ini bukan masalah Photoshop. Masalahnya adalah bahwa format clipboard digunakan oleh salinan apa pun yang sebenarnya tidak ditentukan sebagai mampu-alfa. Photoshop hanya mengikuti spesifikasi dengan benar.
Nyerguds

2

Coba ini: salin gambar transparan, rekatkan ke MS Word. LALU salin (atau seret / jatuhkan) dari kata dan tempel ke program target lainnya.

Saya menemukan pasta ke Visio dari Chrome berubah menjadi hitam, tetapi berfungsi dengan baik di Word, dan kemudian disalin dari Word yang ditempelkan dengan benar dan transparan ke Visio.


jangan lakukan itu! Anda kehilangan latar belakang transparan!
Andrei Krasutski

Tidak yakin mengapa Anda mengatakan kepada saya untuk tidak melakukannya, itu adalah apa yang saya lakukan untuk menjaga transparansi saat menggunakan Visio. Saya juga menggunakan Word untuk menambahkan transparansi (mengatur warna latar belakang dan / atau menghapus fitur Background) ketika itu bukan gambar dengan transparansi.
JamieRI

1

Saya membuat solusi yang mengatasi masalah ini. Menjalankan skrip saya setelah menyalin PNG memungkinkan Anda untuk menempelkan gambar dari Chrome ke Photoshop, Paint, dll dengan transparansi dalam kebijaksanaan.

Program + Sumber: https://github.com/skoshy/CopyTransparentImages/releases

Jika Anda mengalami masalah dengannya, silakan beri tahu saya di sini atau di Github!


Saya tertarik dengan detailnya. Apa yang kode Anda lakukan? Apa yang Photoshop harapkan dari transparansi yang tidak ada dalam data clipboard?
Phrogz

0

Anda cukup menyeret gambar dari browser ke Photoshop atau program apa pun yang akan menangani file PNG dengan benar.


1
Kedengarannya seperti saran yang bagus, tetapi ini tidak berfungsi antara Chrome dan Photoshop CC pada Windows 7x64. The [+]kursor muncul pada target Photoshop, namun tidak ada gambar yang dibuka sebagai hasilnya.
Phrogz

0

Saya hanya menghabiskan banyak waktu untuk menyelidiki hal ini. Saya telah menggunakan Photoshop untuk menyalin tekstur semi-transparan untuk beberapa waktu sambil membuat prototipe (dengan tujuan Axure RP).

Sekarang, saya sudah mencoba menggunakan clipboard API baru di html 5. Saya membedah file PNG yang dihasilkan oleh proses ini.

Jika saya menggunakan clipboard (dengan tenda persegi panjang) untuk menyalin tekstur semi-transparan ke browser dengan API clipboard, itu menetapkan byte alpha ke FF (benar-benar buram).

Jika saya menggunakan drag and drop API untuk menyalin file PNG 24 "Simpan sebagai Web" ke browser, ia berfungsi seperti yang diharapkan dan piksel transparan berfungsi (dan byte alfa tidak dipaksa untuk FF).

Catatan: Bahkan jika Photoshop mengatakan itu 24 bit, sebenarnya ekspor itu masih 8 bit (dikonfirmasi).


0

Bagi siapa pun yang bertanya-tanya, jika Anda mendapatkan warna latar belakang hitam pada file PNG yang disalin bahkan ketika membukanya secara manual, coba periksa apakah tidak ada saluran alfa.

Sepertinya tergantung pada perangkat lunak mana yang digunakan untuk membuat PNG, transparansi kadang-kadang disimpan seperti di dalam lapisan, tetapi beberapa waktu lain, itu disimpan dalam saluran alpha.

Trik ketika ada di saluran alpha adalah dengan CTRL + Klik pada pratinjau kecil saluran alpha untuk memilihnya dan kemudian buat topeng pada lapisan dengan latar belakang hitam dari pilihan. (Kemudian Anda dapat menghapus saluran alfa)


0

Jadi saya muak dengan gangguan ini dan membuat solusi.

Ada dua bagian untuk itu:

  • Utilitas kecil yang saya tulis untuk menyimpan gambar clipboard ke file .png
  • Sebuah Autohotkey Script

Script AutoHotKey memeriksa apakah Photoshop saat ini aktif, dan jika demikian ia memotong kombinasi kunci Ctrl+ V, dan kemudian menjalankan utilitas.

Jika utilitas menyimpan gambar %TEMP%\clip.png, kombinasi tombol Shift+ Ctrl+ F12dikirim ke Photoshop, yang telah saya petakan ke Photoshop Action untuk menempatkan clip.pngfile ke dalam dokumen yang sedang terbuka.

Jika utilitas tidak menyimpan gambar, kombo kunci Ctrl+ standar Vdikirim ke Photoshop dan tempel standar dilakukan.

Semua kode sumber tersedia di sini: https://github.com/SilverEzhik/ClipboardToPNG , dan utilitasnya dapat diunduh di sini: https://github.com/SilverEzhik/ClipboardToPNG/releases

Untuk membuat Aksi Photoshop, buat saja tindakan baru dengan kombinasi tombol yang dipetakan ke Shift + Ctrl + F12 (atau ubah kombinasi dalam file skrip), lalu saat merekam, buka File> Place Embedded..., dan tempel %TEMP%\clip.pngdi bidang nama file.

Kode sumber untuk skrip AHK disediakan di bawah ini - jika Anda belum pernah menggunakan Autohotkey sebelumnya, instal, kemudian simpan kode ke filename.ahkfile ke direktori yang sama dengan utilitas ClipboardToPNG.exe, dan kemudian jalankan saja.

DoPhotoshopPaste() {
    RunWait, %A_ScriptDir%\ClipboardToPNG.exe ; run utility, wait for it to complete
    if (ErrorLevel == 0) { ; if error code is 0
        SendEvent, +^{F12} ; press Shift+Ctrl+F12 to run the designated Photoshop action to paste
    }
    else { 
        SendEvent, ^v ; else, just perform a standard paste.
    }
}

#IfWinActive ahk_exe Photoshop.exe ; only activate this hotkey when photoshop is active
    ^v::DoPhotoshopPaste()
#IfWinActive
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.