Copier le format PNG avec transparence à partir du navigateur affiche plutôt un fond noir

48

Lorsque je copie une image PNG avec une transparence dans le presse-papiers, puis la colle dans Photoshop, Paint, etc., la transparence devient noire.

Y at-il une solution de contournement pour cela? S'agit-il d'un problème de navigateur, d'application ou d'un problème de système d'exploitation lié au Presse-papiers?

J'utilise Windows 7 et testé avec les dernières versions de Chrome et Internet Explorer.

Ryan Elkins
la source
1
S'il vous plaît élaborer. Qu'est-ce que vous copiez exactement? Le .pngfichier ou son bitmap lorsqu'il est ouvert dans un éditeur / visualiseur? Si c'est le fichier, alors Photoshop (devrait) être capable de l'ouvrir correctement, en transparence et tout. S'il s'agit des pixels réels de l'image, cela dépend du programme source et du fait qu'il insère ou non les données de transparence dans le presse-papiers.
Synetech
Le genre de dépend de l'OS. Le Presse-papiers ne semble pas en mesure de contenir des images semi-transparentes, mais certains navigateurs conservent le lien de l'image à la place. La transparence de cette image, une fois collée, est inchangée.
Tomáš Zato
Si vous ouvrez un fichier .png avec transparence dans MS Paint (Windows 10) ou Firefox 60.0.2, l’arrière-plan est affiché en blanc. Si vous ouvrez le même fichier dans IrfanView ou Chrome 67.0.3396.87, l’arrière-plan est affiché en noir. Si vous ouvrez le même fichier dans Paint.NET, l’arrière-plan est affiché sous forme de damier gris et blanc. Si vous l'ouvrez avec Paint 3D, l'arrière-plan est affiché en beige. Si vous copiez à partir de MS Paint, l'arrière-plan devient blanc opaque. Si vous copiez à partir de Paint.NET, l’arrière-plan transparent est préservé dans le presse-papier de Win10. Par conséquent, le résultat dépend du programme que vous collez.
Dave Burton

Réponses:

30

Copier-coller ne maintient pas la transparence. Essayez de sauvegarder le fichier, puis utilisez-le Open Filedans Photoshop. Autant que je sache, Paint n'a pas la capacité d'enregistrer des fichiers png activés pour la transparence.

Gani Simsek
la source
4
Oui, c'est ce que je fais. J'espérais juste qu'il y avait un autre moyen de contourner le problème.
Ryan Elkins
2
@ryan FWIW, cela semble être un bogue du côté de Photoshop. Cela fonctionne dans Paint.net, lorsqu'il est copié depuis IE, FF ou Chrome. Je pensais que la solution serait peut-être de «coller dans Paint.net, tout sélectionner, copier, coller dans Photoshop», mais cela ne fonctionne pas - vous obtenez l'image en blanc au lieu de noir, mais toujours sans transparence.
Kip
9
Juste une note; vous pouvez ouvrir l'URL dans Photoshop, ce qui vous évite l'étape intermédiaire; Windows ( je suis sûr que les autres systèmes d'exploitation feront de même ) le téléchargera dans un fichier temporaire local et l'ouvrira. Ceci ( je viens d’observer ) conserve la transparence.
Dan Lugg
> Copier-coller ne maintient pas la transparence. Cela dépend de la source des données du presse-papiers.
Synetech
Si collé sur PowerPoint / Word, la transparence sera conservée.
Xiao Peng - ZenUML.com
11

Poster le commentaire de @DanLugg comme réponse, car c'est le plus pratique pour Windows , à mon humble avis :

  1. Cliquez avec le bouton droit sur l'image et Copy Image URLdans le navigateur.
  2. Dans Photoshop, choisissez File->Open(ctrl-o) et collez l'URL dans la partie du nom de fichier de la boîte de dialogue.
    • Photoshop / Windows téléchargera l'URL dans un fichier temporaire et l'ouvrira.

Pour OS X , il n'y a pas de champ dans une feuille de dialogue de fichier ouvert dans lequel on pourrait coller un URI. Au lieu de cela, vous devez télécharger le fichier et l'ouvrir (par exemple, faites glisser le navigateur du navigateur vers le bureau, puis faites glisser le nouveau fichier sur le Dock ou dans votre document Photoshop), puis supprimez le fichier temporaire.


FWIW, cela semble être un problème de Photoshop , pas un problème de navigateur ou de système d’exploitation. Sous OS X et Windows, je peux copier une image PNG avec une transparence de Chrome (et également de Safari sur OS X) et la coller dans Illustrator ou d'autres applications et lui demander de conserver la transparence. Photoshop seul est à blâmer.

Phrogz
la source
C'est du génie, je ne savais pas que Photoshop pourrait s'ouvrir directement à partir d'une URL! Bonne découverte!
Doggie52
1
Cette option ne semble pas être disponible pour OSX. Quelqu'un sait?
Christine Cooper
@ChristineCooper La meilleure option que je connaisse pour OS X consiste à télécharger l'image, puis à l'ouvrir, puis à la supprimer. C'est aussi "facile" que de faire glisser l'image dans un dossier ou sur le bureau (qui l'enregistre sous forme de fichier), puis de faire glisser ce fichier sur Photoshop dans le Dock ou dans un document Photoshop ouvert. J'ai testé diverses options à l'aide de Chrome et de Safari avec Photoshop CS6, et je ne trouve pas de meilleure façon, ni d'utiliser le presse-papiers.
Phrogz
Oui, j'essaie d'éviter l'option de téléchargement et d'ouverture et je veux essentiellement réduire le nombre d'étapes. Le glisser-déposer ne fonctionne pas non plus. Espérons que les utilisateurs d’OSX pourront coller des URL dans Photoshop à l’avenir. Merci!
Christine Cooper
Ce n'est pas un problème de Photoshop. Le problème est que le format du Presse-papiers utilisé par toutes les copies n’est pas spécifié comme capable de fonctionner en alpha. Photoshop ne fait que suivre les spécifications correctement.
Nyerguds
3

Essayez ceci: copiez l'image transparente, collez-la dans MS Word. ALORS, copiez-le (ou glissez / déposez) du mot et collez-le dans l'autre programme cible.

J'ai trouvé un collage dans Visio à partir de Chrome qui devient noir, mais qui fonctionne correctement dans Word, puis copié à partir de Word qu'il colle correctement et de manière transparente dans Visio.

JamieRI
la source
ne le fais pas! Vous perdez le fond transparent!
Andrei Krasutski
Vous ne savez pas pourquoi vous me dites de ne pas le faire, c’est ce que je fais pour préserver la transparence lors de l’utilisation de Visio. J'utilise également Word pour ajouter de la transparence (définition de la couleur d'arrière-plan et / ou de la suppression de l'arrière-plan) lorsqu'il ne s'agissait pas d'une image avec transparence.
JamieRI
1

J'ai fait une solution de contournement qui résout le problème. L'exécution de mon script après la copie d'un fichier PNG vous permet de coller une image de Chrome dans Photoshop, Paint, etc. avec la transparence voulue.

Programme + Source: https://github.com/skoshy/CopyTransparentImages/releases

Si vous rencontrez des problèmes, n'hésitez pas à me le faire savoir ici ou sur Github!

Steve
la source
Je serais intéressé par les détails à ce sujet. Que fait votre code? Qu'attend Photoshop de la transparence qui ne figure pas dans les données du Presse-papiers?
Phrogz
0

Vous pouvez simplement faire glisser l'image du navigateur vers Photoshop ou tout autre programme permettant de gérer correctement un fichier PNG.

Bob
la source
1
Cela semble être une bonne suggestion, mais cela ne fonctionne pas entre Chrome et Photoshop CC sous Windows 7x64. Le [+]curseur apparaît sur la cible Photoshop, mais aucune image n'est ouverte en conséquence.
Phrogz
0

Je viens de passer beaucoup de temps à examiner cela. J'ai utilisé Photoshop pour copier des textures semi-transparentes pendant un certain temps tout en prototypant (avec la destination Axure RP).

Maintenant, j'ai essayé d'utiliser la nouvelle API Presse-papiers en HTML 5. J'ai disséqué les fichiers PNG générés par ce processus.

Si j'utilise le presse-papier (avec un rectangle de sélection) pour copier une texture semi-transparente dans le navigateur à l'aide de l'API du presse-papier, l'octet alpha est défini sur FF (complètement opaque).

Si j'utilise l'API glisser-déposer pour copier un fichier PNG 24 "Enregistrer en tant que Web" dans le navigateur, cela fonctionne comme prévu et les pixels transparents fonctionnent (et l'octet alpha n'est pas forcé au format FF).

Remarque: même si Photoshop dit qu'il est en 24 bits, il l'exporte au format 8 bits (confirmé).

Homer6
la source
0

Si vous vous demandez si un fichier PNG copié a une couleur d'arrière-plan noire même lorsque vous l'ouvrez manuellement, essayez de vérifier s'il n'existe pas de canal alpha.

On dirait que, selon le logiciel utilisé pour créer le fichier PNG, la transparence est parfois conservée telle quelle dans les couches, mais à un autre moment, elle est conservée dans un canal alpha.

CTRL + Cliquez sur le petit aperçu du canal alpha pour le sélectionner, puis créez un masque sur le calque avec le fond noir de la sélection. (Ensuite, vous pouvez supprimer le canal alpha)

CMaxo
la source
0

Alors j'en ai eu marre de cette contrariété et j'ai fait une solution de contournement.

Il y a deux pièces:

  • Un petit utilitaire que j'ai écrit pour enregistrer l'image du presse-papiers dans un fichier .png
  • Un script AutoHotKey

Le script AutoHotKey vérifie si Photoshop est actuellement actif et, le cas échéant, intercepte la combinaison de touches Ctrl+ V, puis exécute l'utilitaire.

Si l'utilitaire a enregistré une image sur %TEMP%\clip.png, la combinaison de touches Shift+ Ctrl+ F12est envoyée à Photoshop, que j'ai associée à une action Photoshop pour placer le clip.pngfichier dans le document actuellement ouvert.

Si l'utilitaire n'a pas enregistré l'image, la combinaison standard Ctrl+ Vtouche est envoyée à Photoshop et un collage standard est effectué.

Tout le code source est disponible ici: https://github.com/SilverEzhik/ClipboardToPNG , et l'utilitaire peut être téléchargé ici: https://github.com/SilverEzhik/ClipboardToPNG/releases

Pour créer l'action Photoshop, créez une nouvelle action avec la combinaison de touches mappée sur Maj + Ctrl + F12 (ou modifiez la combinaison dans le fichier de script), puis, pendant l'enregistrement, accédez à File> Place Embedded...et collez-le %TEMP%\clip.pngdans le champ du nom de fichier.

Le code source du script AHK est fourni ci-dessous. Si vous n'avez jamais utilisé AutoHotKey auparavant, installez-le, puis enregistrez-le dans un filename.ahkfichier situé dans le même répertoire que l'utilitaire ClipboardToPNG.exe, puis exécutez-le.

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
la source