Copiar PNG con transparencia desde el navegador muestra un fondo negro

47

Cuando copio una imagen PNG con transparencia en el portapapeles y luego la pego en Photoshop, Paint, etc., la transparencia se vuelve negra.

¿Hay alguna solución para esto? ¿Es este un problema del navegador, un problema de la aplicación o un problema del sistema operativo con el portapapeles?

Estoy usando Windows 7 y probé con las últimas versiones de Chrome e Internet Explorer.

Ryan Elkins
fuente
1
Por favor elabora. ¿Qué estás copiando exactamente? ¿El .pngarchivo o su mapa de bits mientras está abierto en un editor / visor? Si es el archivo, Photoshop (debería) poder abrir el archivo correctamente, con transparencia y todo. Si se trata de los píxeles reales de la imagen, entonces depende del programa fuente y de si está poniendo los datos de transparencia en el portapapeles o no.
Synetech
Más o menos depende del sistema operativo. El Portapapeles parece no poder contener imágenes semitransparentes, pero algunos navegadores mantienen el enlace de la imagen; esto, cuando se pega, tiene la transparencia sin alterar.
Tomáš Zato
Si abre un archivo .png con transparencia en MS Paint (Windows 10) o Firefox 60.0.2, el fondo se muestra en blanco. Si abre el mismo archivo en IrfanView o Chrome 67.0.3396.87, el fondo se muestra en negro. Si abre el mismo archivo en Paint.NET, el fondo se muestra como un tablero de damas gris y blanco. Si lo abre con Paint 3D, el fondo se muestra en color beige. Si copia desde MS Paint, el fondo se vuelve blanco opaco. Si copia desde Paint.NET, el fondo transparente se conserva en el portapapeles Win10, por lo que lo que sucede depende del programa en el que lo pegue.
Dave Burton el

Respuestas:

30

Copiar-Pegar no mantiene la transparencia. Intenta guardar el archivo y luego úsalo Open Fileen Photoshop. AFAIK, Paint no tiene la capacidad de guardar archivos PNG con transparencia activada.

Gani Simsek
fuente
44
Sí, esto es lo que hago. Solo esperaba que hubiera otra forma de evitarlo.
Ryan Elkins
2
@ryan FWIW, esto en realidad parece ser un error en el lado de Photoshop. Funciona en Paint.net, cuando se copia desde IE, FF o Chrome. Pensé que tal vez una solución sería "Pegar en Paint.net, seleccionar todo, copiar, pegar en Photoshop", pero eso no funciona: obtienes la imagen en blanco en lugar de negro, pero aún sin transparencia.
Kip
99
Solo una nota; puedes abrir la URL en Photoshop, ahorrándote el paso intermedio; Windows ( estoy seguro de que otros sistemas operativos harán lo mismo ) lo descargará a un archivo temporal local y se abrirá. Esto ( acabo de observar ) conserva la transparencia.
Dan Lugg
> Copiar-Pegar no mantiene la transparencia. Eso depende de la fuente de los datos del portapapeles.
Synetech
Si se pega en PowerPoint / Word, se mantendrá la transparencia.
Xiao Peng - ZenUML.com
11

Publicando el comentario de @DanLugg como respuesta, ya que es lo más conveniente para Windows , en mi humilde opinión:

  1. Haga clic derecho en la imagen y Copy Image URLdesde el navegador.
  2. En Photoshop, elija File->Open(ctrl-o) y pegue la URL en la parte del nombre de archivo del cuadro de diálogo.
    • Photoshop / Windows descargará la URL a un archivo temporal y lo abrirá.

Para OS X , no hay campo en un cuadro de diálogo / hoja Abrir archivo donde se pueda pegar un URI. En su lugar, debe descargar el archivo y abrirlo (por ejemplo, arrastre del navegador al escritorio, luego arrastre el nuevo archivo al Dock o al documento de Photoshop) y luego elimine el archivo temporal.


FWIW, esto parece ser un problema de Photoshop , no un problema de navegador o sistema operativo. Tanto en OS X como en Windows, puedo copiar una imagen PNG con transparencia desde Chrome (y también Safari en OS X) y pegarla en Illustrator u otras aplicaciones y hacer que mantenga la transparencia. Photoshop solo tiene la culpa.

revs Phrogz
fuente
Esto es genial, ¡no tenía idea de que Photoshop podría abrirse directamente desde una URL! Buen hallazgo!
Perrito52
1
Esta opción no parece estar disponible para OSX. ¿Alguien sabe?
Christine Cooper
@ChristineCooper La mejor opción que conozco para OS X es descargar la imagen, luego abrir y luego eliminar el original. Es tan "fácil" como arrastrar la imagen a una carpeta o Escritorio (que se guarda como un archivo), luego arrastrar ese archivo a Photoshop en el Dock, o en un documento abierto de Photoshop. He probado una variedad de opciones usando Chrome y Safari junto con Photoshop CS6, y no puedo encontrar una mejor manera, o ninguna otra forma de usar el portapapeles.
Phrogz
Sí, estoy tratando de evitar la opción de descarga y apertura y quiero reducir esencialmente los pasos. Arrastrar y soltar tampoco funciona. Con suerte, los usuarios de OSX podrán pegar URL en Photoshop en el futuro. ¡Gracias!
Christine Cooper
No es un problema de Photoshop. El problema es que el formato del portapapeles utilizado por cualquier copia no está realmente especificado como alfa. Photoshop solo sigue las especificaciones correctamente.
Nyerguds
2

Prueba esto: copia la imagen transparente, pégala en MS Word. ENTONCES cópielo (o arrastre / suelte) de Word y péguelo en el otro programa de destino.

Encontré una pasta en Visio desde Chrome que se vuelve negra, pero funciona correctamente en Word, y luego la copié de Word, la pega de manera correcta y transparente en Visio.

JamieRI
fuente
no lo hagas! ¡Pierdes el fondo transparente!
Andrei Krasutski
No estoy seguro de por qué me está diciendo que no lo haga, es lo que hago para preservar la transparencia cuando uso Visio. También uso Word para agregar transparencia (establecer el color de fondo y / o Eliminar características de fondo) cuando no era una imagen con transparencia.
JamieRI
1

Hice una solución alternativa que aborda el problema. Ejecutar mi script después de copiar un PNG le permite pegar una imagen de Chrome en Photoshop, Paint, etc. con la transparencia intacta.

Programa + Fuente: https://github.com/skoshy/CopyTransparentImages/releases

Si tiene algún problema con él, ¡no dude en hacérmelo saber aquí o en Github!

Steve
fuente
Me interesarían los detalles sobre esto. ¿Qué hace tu código? ¿Qué espera Photoshop para la transparencia que no está en los datos del portapapeles?
Phrogz
0

Simplemente puede arrastrar la imagen desde el navegador a Photoshop o cualquier programa que maneje correctamente un archivo PNG.

Mover
fuente
1
Suena como una buena sugerencia, pero esto no funciona entre Chrome y Photoshop CC en Windows 7x64. El [+]cursor aparece en el objetivo de Photoshop, pero como resultado no se abre ninguna imagen.
Phrogz
0

Acabo de pasar mucho tiempo investigando esto. He usado Photoshop para copiar texturas semitransparentes durante algún tiempo durante la creación de prototipos (con el destino de Axure RP).

Ahora, he intentado usar la nueva API del portapapeles en html 5. Diseccioné los archivos PNG generados por este proceso.

Si uso el portapapeles (con un recuadro rectangular) para copiar una textura semitransparente al navegador con la API del portapapeles, establece el byte alfa en FF (completamente opaco).

Si utilizo la API de arrastrar y soltar para copiar un archivo PNG 24 "Guardar como Web" en el navegador, funciona como se espera y funcionan los píxeles transparentes (y el byte alfa no está forzado a FF).

Nota: Incluso aunque Photoshop dice que es de 24 bits, en realidad lo exporta como 8 bits (confirmado).

Homero6
fuente
0

Para cualquiera que se pregunte, si obtiene un color de fondo negro en un archivo PNG copiado incluso al abrirlo manualmente, intente verificar si no hay un canal alfa.

Parece que dependiendo de qué software se utilizó para hacer el PNG, la transparencia a veces se mantiene dentro de las capas, pero en otras ocasiones, se mantiene en un canal alfa.

Un truco cuando está en el canal alfa es simplemente CTRL + clic en la pequeña vista previa del canal alfa para seleccionarlo y luego crear una máscara en la capa con el fondo negro de la selección. (Entonces puedes eliminar el canal alfa)

CMaxo
fuente
0

Así que me harté de esta molestia e hice una solución.

Hay dos piezas:

  • Una pequeña utilidad que escribí para guardar la imagen del portapapeles en un archivo .png
  • Un script de AutoHotKey

El script AutoHotKey comprueba si Photoshop está actualmente activo, y si es así, intercepta la combinación de teclas Ctrl+ V, y luego ejecuta la utilidad.

Si la utilidad guardó una imagen %TEMP%\clip.png, la combinación de teclas Shift+ Ctrl+ F12se envía a Photoshop, que he asignado a una Acción de Photoshop para colocar el clip.pngarchivo en el documento abierto actualmente.

Si la utilidad no guardó la imagen, el combo estándar Ctrl+ Vtecla se envía a Photoshop y se realiza un pegado estándar.

Todo el código fuente está disponible aquí: https://github.com/SilverEzhik/ClipboardToPNG , y la utilidad se puede descargar aquí: https://github.com/SilverEzhik/ClipboardToPNG/releases

Para crear la Acción de Photoshop, simplemente realice una nueva acción con la combinación de teclas asignada a Shift + Ctrl + F12 (o cambie la combinación en el archivo de script), y luego, mientras graba, vaya a File> Place Embedded...y pegue %TEMP%\clip.pngen el campo de nombre de archivo.

El código fuente de la secuencia de comandos AHK se proporciona a continuación: si no ha utilizado AutoHotKey antes, instálelo, guarde el código en un filename.ahkarchivo en el mismo directorio que la utilidad ClipboardToPNG.exe y luego ejecútelo.

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
fuente