Wenn Sie PNG mit Transparenz aus dem Browser kopieren, wird stattdessen ein schwarzer Hintergrund angezeigt

46

Wenn ich ein PNG-Bild mit Transparenz in die Zwischenablage kopiere und es anschließend in Photoshop, Paint usw. einfüge, wird die Transparenz schwarz.

Gibt es eine Problemumgehung dafür? Handelt es sich um ein Browserproblem, ein Anwendungsproblem oder ein Betriebssystemproblem mit der Zwischenablage?

Ich benutze Windows 7 und habe es mit den neuesten Versionen von Chrome und Internet Explorer getestet.

Ryan Elkins
quelle
1
Bitte erläutern Sie. Was genau kopierst du? Die .pngDatei oder ihre Bitmap, während sie in einem Editor / Viewer geöffnet ist? Wenn es sich um die Datei handelt, sollte Photoshop in der Lage sein, die Datei korrekt, transparent und vollständig zu öffnen. Wenn es sich um die tatsächlichen Pixel des Bildes handelt, hängt dies vom Quellprogramm ab und davon, ob die Transparenzdaten in die Zwischenablage kopiert werden oder nicht.
Synetech,
Art hängt vom Betriebssystem ab. Die Zwischenablage kann anscheinend keine semitransparenten Bilder enthalten, aber einige Browser behalten stattdessen die Bildverknüpfung bei - beim Einfügen bleibt die Transparenz unverändert.
Tomáš Zato
Wenn Sie eine PNG-Datei mit Transparenz in MS Paint (Windows 10) oder Firefox 60.0.2 öffnen, wird der Hintergrund weiß angezeigt. Wenn Sie dieselbe Datei in IrfanView oder Chrome 67.0.3396.87 öffnen, wird der Hintergrund schwarz angezeigt. Wenn Sie dieselbe Datei in Paint.NET öffnen, wird der Hintergrund als grauweißes Schachbrett angezeigt. Wenn Sie es mit Paint 3D öffnen, wird der Hintergrund beige dargestellt. Wenn Sie von MS Paint kopieren, wird der Hintergrund undurchsichtig weiß. Wenn Sie aus Paint.NET kopieren, bleibt der transparente Hintergrund in der Win10-Zwischenablage erhalten. Was also passiert, hängt davon ab, in welches Programm Sie ihn einfügen.
Dave Burton

Antworten:

30

Beim Kopieren und Einfügen bleibt die Transparenz nicht erhalten. Versuchen Sie, die Datei zu speichern, und verwenden Sie sie dann Open Filein Photoshop. AFAIK, Paint kann transparenzfähige PNG-Dateien nicht speichern.

Gani Simsek
quelle
4
Ja, das ist was ich tue. Ich hoffte nur, dass es einen anderen Weg gibt.
Ryan Elkins
2
@ryan FWIW, das scheint tatsächlich ein Fehler auf der Photoshop-Seite zu sein. Es funktioniert in Paint.net, wenn es aus IE, FF oder Chrome kopiert wird. Ich dachte, eine Problemumgehung wäre "Einfügen in Paint.net, Alles auswählen, Kopieren, Einfügen in Photoshop", aber das funktioniert nicht - Sie erhalten das Bild auf Weiß anstelle von Schwarz, aber immer noch ohne Transparenz.
Kip
9
Nur eine Notiz; Sie können die URL in Photoshop öffnen und so den Zwischenschritt speichern. Windows ( ich bin sicher, dass andere Betriebssysteme dasselbe tun werden ) lädt es in eine lokale temporäre Datei herunter und öffnet es. Dies ( ich habe gerade beobachtet ) behält Transparenz.
Dan Lugg
> Beim Kopieren und Einfügen bleibt die Transparenz nicht erhalten. Das hängt von der Quelle der Daten in der Zwischenablage ab.
Synetech,
Beim Einfügen in PowerPoint / Word bleibt die Transparenz erhalten.
Xiao Peng - ZenUML.com
11

Das Posten des Kommentars von @DanLugg als Antwort, da es für Windows am bequemsten ist , IMHO:

  1. Klicken Sie mit der rechten Maustaste auf das Bild und Copy Image URLim Browser.
  2. Wählen File->OpenSie in Photoshop (Strg + O) und fügen Sie die URL in den Dateinamenbereich des Dialogfelds ein.
    • Photoshop / Windows lädt die URL in eine temporäre Datei herunter und öffnet sie.

Unter OS X gibt es in einem Dialogfeld / Blatt "Datei öffnen" kein Feld, in das ein URI eingefügt werden könnte. Stattdessen müssen Sie die Datei herunterladen und öffnen (z. B. vom Browser auf den Desktop ziehen, dann die neue Datei in das Dock oder in Ihr Photoshop-Dokument ziehen) und dann die temporäre Datei löschen.


FWIW, dies scheint ein Photoshop- Problem zu sein, kein Browser- oder Betriebssystemproblem. Unter OS X und Windows kann ich ein PNG-Bild mit Transparenz aus Chrome (und auch Safari unter OS X) kopieren und in Illustrator oder andere Anwendungen einfügen und Transparenz beibehalten. Photoshop allein ist schuld.

Phrogz
quelle
Das ist genial, hatte keine Ahnung, dass Photoshop direkt von einer URL aus öffnen könnte! Gutes Fundstück!
Doggie52
1
Diese Option scheint für OSX nicht verfügbar zu sein. Weiß das jemand?
Christine Cooper
@ChristineCooper Die beste Option, die ich für OS X kenne, besteht darin, das Image herunterzuladen, es zu öffnen und das Original zu löschen. Es ist so einfach, wie das Bild in einen Ordner oder auf einen Desktop (der als Datei gespeichert wird) zu ziehen und diese Datei dann in Photoshop im Dock oder in ein geöffnetes Photoshop-Dokument zu ziehen. Ich habe eine Vielzahl von Optionen mit Chrome und Safari zusammen mit Photoshop CS6 getestet und kann keinen besseren Weg finden oder die Zwischenablage verwenden.
Phrogz
Ja, ich versuche, das Herunterladen und Öffnen zu vermeiden und möchte die Anzahl der Schritte wesentlich reduzieren. Drag and Drop funktioniert auch nicht. Hoffentlich können OSX-Benutzer in Zukunft URLs in Photoshop einfügen. Vielen Dank!
Christine Cooper
Es ist kein Photoshop-Problem. Das Problem ist, dass das Format der Zwischenablage, das von allen Kopien verwendet wird, nicht als Alpha-fähig eingestuft wird. Photoshop folgt nur den Spezifikationen korrekt.
Nyerguds
2

Versuchen Sie Folgendes: Kopieren Sie das transparente Bild und fügen Sie es in MS Word ein. DANN kopieren Sie es (oder ziehen Sie es aus Word) und fügen Sie es in das andere Zielprogramm ein.

Ich habe festgestellt, dass eine Einfügung in Visio aus Chrome schwarz wird, aber in Word ordnungsgemäß funktioniert, und beim Kopieren aus Word wird sie ordnungsgemäß und transparent in Visio eingefügt.

JamieRI
quelle
tu es nicht! Sie verlieren den transparenten Hintergrund!
Andrei Krasutski
Ich bin mir nicht sicher, warum Sie mir sagen, dass ich das nicht tun soll. Ich bin nur darum bemüht, die Transparenz bei der Verwendung von Visio zu bewahren. Ich verwende Word auch, um Transparenz hinzuzufügen (Hintergrundfarbe festlegen und / oder Hintergrundfunktionen entfernen), wenn es sich nicht um ein Bild mit Transparenz handelt.
JamieRI
1

Ich habe eine Problemumgehung vorgenommen, die das Problem behebt. Wenn Sie mein Skript nach dem Kopieren einer PNG ausführen, können Sie ein Bild aus Chrome in Photoshop, Paint usw. einfügen, wobei die Transparenz erhalten bleibt.

Programm + Quelle: https://github.com/skoshy/CopyTransparentImages/releases

Wenn du irgendwelche Probleme damit hast, kannst du mich gerne hier oder auf Github informieren!

Steve
quelle
Ich würde mich für die Details dazu interessieren. Was macht Ihr Code? Was erwartet Photoshop für Transparenz, die nicht in den Daten der Zwischenablage enthalten ist?
Phrogz
0

Sie können das Bild einfach aus dem Browser in Photoshop oder ein anderes Programm ziehen, das eine PNG-Datei ordnungsgemäß verarbeitet.

Bob
quelle
1
Klingt nach einem guten Vorschlag, funktioniert jedoch nicht zwischen Chrome und Photoshop CC unter Windows 7x64. Der [+]Cursor wird auf dem Photoshop-Ziel angezeigt, es wird jedoch kein Bild geöffnet.
Phrogz
0

Ich habe nur viel Zeit damit verbracht, mich damit zu beschäftigen. Ich habe Photoshop verwendet, um einige Zeit lang halbtransparente Texturen während des Prototyping zu kopieren (mit dem Ziel Axure RP).

Jetzt habe ich versucht, die neue Zwischenablage-API in HTML 5 zu verwenden. Ich habe die PNG-Dateien zerlegt, die durch diesen Prozess generiert werden.

Wenn ich die Zwischenablage (mit einem rechteckigen Auswahlrahmen) verwende, um eine halbtransparente Textur mit der Zwischenablage-API in den Browser zu kopieren, wird das Alpha-Byte auf FF (vollständig undurchsichtig) gesetzt.

Wenn ich die Drag & Drop-API verwende, um eine PNG 24-Datei "Save as Web" in den Browser zu kopieren, funktioniert sie wie erwartet und transparente Pixel funktionieren (und das Alpha-Byte wird nicht zu FF gezwungen).

Hinweis: Auch wenn Photoshop sagt, dass es 24 Bit ist, exportiert es es tatsächlich noch als 8 Bit (bestätigt).

Homer6
quelle
0

Wenn Sie sich fragen, ob eine kopierte PNG-Datei auch beim manuellen Öffnen eine schwarze Hintergrundfarbe aufweist, prüfen Sie, ob kein Alphakanal vorhanden ist.

Je nachdem, welche Software für die Erstellung des PNG verwendet wurde, wird die Transparenz anscheinend manchmal so beibehalten, wie sie sich in den Ebenen befindet, aber zu einem anderen Zeitpunkt wird sie in einem Alphakanal gespeichert.

Ein Trick im Alphakanal ist einfach STRG + Klicken Sie auf die kleine Vorschau des Alphakanals, um sie auszuwählen, und erstellen Sie dann eine Maske auf der Ebene mit dem schwarzen Hintergrund aus der Auswahl. (Dann können Sie den Alpha-Kanal löschen)

CMaxo
quelle
0

Also hatte ich genug von diesem Ärger und machte einen Workaround.

Es gibt zwei Teile:

  • Ein kleines Hilfsprogramm, das ich geschrieben habe, um das Zwischenablage-Bild in einer PNG-Datei zu speichern
  • Ein AutoHotKey- Skript

Das AutoHotKey-Skript überprüft, ob Photoshop derzeit aktiv ist, und fängt in diesem Fall die Tastenkombination Ctrl+ ab. VAnschließend wird das Dienstprogramm ausgeführt.

Wenn das Dienstprogramm ein Bild in gespeichert hat %TEMP%\clip.png, wird die Tastenkombination Shift+ Ctrl+ F12an Photoshop gesendet, das ich einer Photoshop-Aktion zugeordnet habe, um die clip.pngDatei im aktuell geöffneten Dokument abzulegen.

Wenn das Dienstprogramm nicht das Bild speichern, der Standard Ctrl+ VTastenkombination ist mit Photoshop und eine Standard - Paste gesendet wird , durchgeführt.

Der gesamte Quellcode ist hier verfügbar: https://github.com/SilverEzhik/ClipboardToPNG . Das Dienstprogramm kann hier heruntergeladen werden: https://github.com/SilverEzhik/ClipboardToPNG/releases

Um die Photoshop-Aktion zu erstellen, erstellen Sie einfach eine neue Aktion mit der Tastenkombination Umschalt + Strg + F12 (oder ändern Sie die Kombination in der Skriptdatei). Gehen Sie dann während der Aufnahme zu File> Place Embedded...und fügen Sie sie %TEMP%\clip.pngin das Dateinamenfeld ein.

Der Quellcode für das AHK-Skript ist unten angegeben. Wenn Sie AutoHotKey noch nicht verwendet haben, installieren Sie es, speichern Sie den Code in einer filename.ahkDatei im selben Verzeichnis wie das Dienstprogramm ClipboardToPNG.exe und führen Sie es dann einfach aus.

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
quelle