Zamiast tego kopiowanie PNG z przezroczystością z przeglądarki pokazuje czarne tło

47

Kiedy kopiuję obraz PNG z przezroczystością do schowka, a następnie wklejam go do programu Photoshop, Paint itp. - przezroczystość zmienia się w czarny.

Czy istnieje jakieś obejście tego problemu? Czy jest to problem z przeglądarką, problem z aplikacją lub system operacyjny ze schowkiem?

Korzystam z systemu Windows 7 i przetestowałem go pod kątem najnowszych wersji Chrome i Internet Explorera.

Ryan Elkins
źródło
1
Proszę opracować. Co dokładnie kopiujesz? .pngPlik lub jego bitmapy, gdy jest otwarty w edytorze / widza? Jeśli jest to plik, wówczas Photoshop (powinien) być w stanie poprawnie otworzyć plik, przezroczystość i wszystko. Jeśli są to rzeczywiste piksele obrazu, zależy to od programu źródłowego i tego, czy umieszcza dane przezroczystości w schowku, czy nie.
Synetech,
Rodzaj zależy od systemu operacyjnego. Wygląda na to, że schowek nie może zawierać półprzezroczystych obrazów, ale niektóre przeglądarki zachowują zamiast tego link do obrazu - po wklejeniu przezroczystość pozostaje niezmieniona.
Tomáš Zato,
Jeśli otworzysz plik .png z przezroczystością w MS Paint (Windows 10) lub Firefox 60.0.2, tło zostanie wyświetlone w kolorze białym. Jeśli otworzysz ten sam plik w IrfanView lub Chrome 67.0.3396.87, tło będzie wyświetlane w kolorze czarnym. Jeśli otworzysz ten sam plik w Paint.NET, tło zostanie wyświetlone jako szaro-biała szachownica. Jeśli otworzysz go za pomocą Paint 3D, tło zostanie wyświetlone w kolorze beżowym. W przypadku kopiowania z MS Paint tło staje się nieprzezroczyste, białe. Jeśli skopiujesz z Paint.NET, przezroczyste tło zostanie zachowane w schowku Win10, więc to, co się stanie, zależy od tego, do którego programu go wkleisz.
Dave Burton,

Odpowiedzi:

30

Kopiuj-wklej nie zachowuje przezroczystości. Spróbuj zapisać plik, a następnie użyj go Open Filew Photoshopie. AFAIK, Paint nie ma możliwości zapisywania plików png z przezroczystością.

Gani Simsek
źródło
4
Tak, właśnie to robię. Miałem tylko nadzieję, że jest na to jakiś sposób.
Ryan Elkins,
2
@ryan FWIW, to faktycznie wydaje się być błędem po stronie Photoshopa. Działa w Paint.net po skopiowaniu z IE, FF lub Chrome. Pomyślałem, że może obejście to: „Wklej w Paint.net, zaznacz wszystko, skopiuj, wklej w Photoshopie”, ale to nie działa - obraz jest biały zamiast czarnego, ale nadal bez przezroczystości.
Kip
9
Tylko uwaga; możesz otworzyć adres URL w Photoshopie, oszczędzając ci pośredniego kroku; Windows ( jestem pewien, że inne systemy operacyjne zrobią to samo ) pobierze go do lokalnego pliku tymczasowego i otworzy. To ( właśnie zauważyłem ) zachowuje przezroczystość.
Dan Lugg,
> Kopiuj-wklej nie zachowuje przezroczystości. To zależy od źródła danych ze schowka.
Synetech,
W przypadku wklejenia w programie PowerPoint / Word przejrzystość zostanie zachowana.
Xiao Peng - ZenUML.com,
11

Publikując komentarz @DanLugg jako odpowiedź, ponieważ jest to najwygodniejszy dla systemu Windows , IMHO:

  1. Kliknij obraz prawym przyciskiem myszy iz Copy Image URLprzeglądarki.
  2. W Photoshopie wybierz File->Open(ctrl-o) i wklej adres URL w części okna dialogowego z nazwą pliku.
    • Program Photoshop / Windows pobierze adres URL do pliku tymczasowego i otworzy go.

W przypadku systemu OS X w oknie dialogowym / pliku otwartego pliku nie ma pola, w którym można wkleić identyfikator URI. Zamiast tego musisz pobrać plik i otworzyć go (np. Przeciągnij z przeglądarki na pulpit, następnie przeciągnij nowy plik do Docka lub dokumentu programu Photoshop), a następnie usuń plik tymczasowy.


FWIW, wydaje się, że jest to problem Photoshopa , a nie problem przeglądarki lub systemu operacyjnego. Zarówno w systemie OS X, jak i Windows mogę skopiować obraz PNG z przezroczystością z Chrome (a także Safari w OS X) i wkleić go do programu Illustrator lub innych aplikacji i zachować przejrzystość. Winny jest sam Photoshop.

Phrogz
źródło
To genialne, nie miałem pojęcia, że ​​Photoshop może otworzyć bezpośrednio z adresu URL! Dobre znalezisko!
Doggie52
1
Ta opcja nie wydaje się być dostępna dla OSX. Ktokolwiek wie?
Christine Cooper
@ChristineCooper Najlepsza opcja, jaką znam dla systemu OS X, to pobranie obrazu, a następnie otwarcie, a następnie usunięcie oryginału. Jest to tak „łatwe”, jak przeciąganie obrazu do folderu lub pulpitu (który zapisuje się jako plik), a następnie przeciąganie tego pliku do Photoshopa w Docku lub do otwartego dokumentu Photoshopa. Przetestowałem różne opcje, używając zarówno przeglądarki Chrome, jak i Safari wraz z programem Photoshop CS6, i nie mogę znaleźć lepszego sposobu ani sposobu korzystania ze schowka.
Phrogz
Tak, staram się unikać opcji pobierania i otwierania i chcę zasadniczo zmniejszyć liczbę kroków. Przeciąganie i upuszczanie również nie działa. Mamy nadzieję, że użytkownicy OSX będą mogli wkleić adresy URL do Photoshopa w przyszłości. Dzięki!
Christine Cooper
To nie jest problem z Photoshopem. Problem polega na tym, że format schowka używany przez wszystkie kopie nie jest tak naprawdę określony jako obsługujący alfa. Photoshop po prostu poprawnie przestrzega specyfikacji.
Nyerguds
2

Spróbuj: skopiuj przezroczysty obraz, wklej do MS Word. NASTĘPNIE skopiuj go (lub przeciągnij / upuść) ze słowa i wklej do innego programu docelowego.

Znalazłem wklej do Visio z Chrome zmienia kolor na czarny, ale działa poprawnie w programie Word, a następnie skopiowałem z programu Word, wkleja się prawidłowo i przezroczysto do programu Visio.

JamieRI
źródło
nie rób tego! Tracisz przezroczyste tło!
Andrei Krasutski
Nie jestem pewien, dlaczego mówisz, żebym tego nie robił, to właśnie robię, aby zachować przejrzystość podczas korzystania z Visio. Używam również programu Word, aby dodać przezroczystość (ustawić kolor tła i / lub usunąć funkcje tła), gdy nie był to obraz z przezroczystością.
JamieRI,
1

Zrobiłem obejście, które rozwiązuje problem. Uruchomienie mojego skryptu po skopiowaniu PNG pozwala wkleić obraz z Chrome do Photoshopa, Paint itp. Z zachowaniem przejrzystości.

Program + źródło: https://github.com/skoshy/CopyTransparentImages/releases

Jeśli napotkasz jakieś problemy, daj mi znać tutaj lub na Github!

Steve
źródło
Byłbym zainteresowany szczegółami na ten temat. Co robi twój kod? Czego Photoshop oczekuje od przezroczystości, której nie ma w schowku?
Phrogz
0

Możesz po prostu przeciągnąć obraz z przeglądarki do Photoshopa lub innego programu, który odpowiednio obsługuje plik PNG.

Kok
źródło
1
Brzmi jak dobra sugestia, ale to nie działa między Chrome a Photoshop CC na Windows 7x64. [+]Kursor wskazuje się na cel Photoshop, ale nie ma obrazu jest otwarta w wyniku.
Phrogz
0

Właśnie spędziłem dużo czasu, patrząc na to. Użyłem Photoshopa do kopiowania półprzezroczystych tekstur przez jakiś czas podczas prototypowania (wraz z przeznaczeniem Axure RP).

Teraz próbowałem użyć nowego interfejsu API schowka w HTML 5. Rozproszyłem pliki PNG, które są generowane przez ten proces.

Jeśli użyję schowka (z prostokątną ramką) do skopiowania półprzezroczystej tekstury do przeglądarki za pomocą interfejsu API schowka, ustawia bajt alfa na FF (całkowicie nieprzezroczysty).

Jeśli użyję interfejsu API przeciągnij i upuść, aby skopiować plik PNG 24 „Zapisz jako sieć” do przeglądarki, działa on zgodnie z oczekiwaniami, a przezroczyste piksele działają (a bajt alfa nie jest zmuszony do FF).

Uwaga: Nawet sądząc, że Photoshop twierdzi, że jest 24-bitowy, w rzeczywistości eksportuje go jako 8-bitowy (potwierdzone).

Homer6
źródło
0

Dla każdego, kto zastanawia się, czy na skopiowanym pliku PNG pojawi się czarny kolor tła, nawet podczas ręcznego otwierania, spróbuj sprawdzić, czy nie ma kanału alfa.

Wygląda na to, że zależnie od tego, które oprogramowanie zostało użyte do utworzenia PNG, przezroczystość jest czasami zachowywana wewnątrz warstw, ale innym razem jest utrzymywana w kanale alfa.

Sztuką, gdy jest on w kanale alfa, jest po prostu CTRL + kliknij mały podgląd kanału alfa, aby go wybrać, a następnie utwórz maskę na warstwie z czarnym tłem z zaznaczenia. (Następnie możesz usunąć kanał alfa)

CMaxo
źródło
0

Więc mam dość tej irytacji i dokonałem obejścia.

Składa się z dwóch części:

  • Małe narzędzie, które napisałem, aby zapisać obraz ze schowka w pliku .png
  • AutoHotkey skrypt

Skrypt AutoHotKey sprawdza, czy Photoshop jest obecnie aktywny, a jeśli tak, to przechwytuje kombinację klawiszy Ctrl+ V, a następnie uruchamia narzędzie.

Jeśli narzędzie zapisało obraz %TEMP%\clip.png, kombinacja klawiszy Shift+ Ctrl+ F12jest wysyłana do Photoshopa, który zamapowałem na działanie Photoshopa, aby umieścić clip.pngplik w aktualnie otwartym dokumencie.

Jeśli narzędzie nie zapisało obrazu, standardowa kombinacja klawiszy Ctrl+ Vjest wysyłana do Photoshopa i wykonywane jest standardowe wklejanie.

Cały kod źródłowy jest dostępny tutaj: https://github.com/SilverEzhik/ClipboardToPNG , a narzędzie można pobrać tutaj: https://github.com/SilverEzhik/ClipboardToPNG/releases

Aby utworzyć akcję Photoshop, po prostu wykonaj nową akcję z kombinacją klawiszy zamapowaną na Shift + Ctrl + F12 (lub zmień kombinację w pliku skryptu), a następnie podczas nagrywania przejdź do File> Place Embedded...i wklej %TEMP%\clip.pngw polu nazwy pliku.

Kod źródłowy skryptu AHK znajduje się poniżej - jeśli wcześniej nie korzystałeś z AutoHotKey, zainstaluj go, a następnie zapisz kod w filename.ahkpliku w tym samym katalogu co narzędzie ClipboardToPNG.exe, a następnie po prostu uruchom go.

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
Ezhik
źródło