Copiar PNG com transparência do navegador mostra um fundo preto

47

Quando copio uma imagem PNG com transparência para a área de transferência e, em seguida, colo-a no Photoshop, Paint etc. - a transparência fica preta.

Existe alguma solução alternativa para isso? Esse é um problema do navegador, do aplicativo ou do SO da área de transferência?

Estou usando o Windows 7 e testei com as versões mais recentes do Chrome e do Internet Explorer.

Ryan Elkins
fonte
11
Por favor elabore. O que exatamente você está copiando? O .pngarquivo ou seu bitmap enquanto é aberto em um editor / visualizador? Se for o arquivo, o Photoshop poderá abrir o arquivo corretamente, com transparência e tudo. Se forem os pixels reais da imagem, isso depende do programa de origem e se os dados de transparência estão sendo colocados na área de transferência ou não.
Synetech 07/07/2012
Tipo de depende do sistema operacional. A área de transferência parece não conseguir conter imagens semitransparentes, mas alguns navegadores mantêm o link da imagem - isso, quando colado, mantém a transparência inalterada.
Tomáš Zato
Se você abrir um arquivo .png com transparência no MS Paint (Windows 10) ou Firefox 60.0.2, o plano de fundo será exibido em branco. Se você abrir o mesmo arquivo no IrfanView ou no Chrome 67.0.3396.87, o plano de fundo será exibido em preto. Se você abrir o mesmo arquivo no Paint.NET, o plano de fundo será exibido como um tabuleiro de xadrez cinza e branco. Se você o abrir com o Paint 3D, o fundo será exibido como bege. Se você copiar do MS Paint, o fundo ficará branco opaco. Se você copiar do Paint.NET, o plano de fundo transparente será preservado na área de transferência do Win10; portanto, o que acontece depende do programa em que você o cola.
Dave Burton

Respostas:

30

Copiar e colar não mantém a transparência. Tente salvar o arquivo e use Open Fileno Photoshop. AFAIK, o Paint não tem a capacidade de salvar arquivos png com transparência.

Gani Simsek
fonte
4
Sim, é isso que eu faço. Eu só esperava que houvesse outra maneira de contornar isso.
Ryan Elkins
2
@ryan FWIW, isso realmente parece ser um bug do lado do Photoshop. Funciona no Paint.net, quando copiado do IE, FF ou Chrome. Eu pensei que talvez uma solução alternativa seria "Cole no Paint.net, selecione tudo, copie, cole no Photoshop", mas isso não funciona - você obtém a imagem em branco em vez de preto, mas ainda sem transparência.
25411 Kip
9
Apenas uma nota; você pode abrir o URL no Photoshop, poupando a etapa intermediária; O Windows ( tenho certeza que outros sistemas operacionais farão o mesmo ) fará o download para um arquivo temporário local e abrirá. Isso ( acabei de observar ) mantém a transparência.
precisa
> Copiar e colar não mantém a transparência. Isso depende da fonte dos dados da área de transferência.
Synetech 07/07/2012
Se colado no PowerPoint / Word, a transparência será mantida.
Xiao Peng - ZenUML.com
11

Postando o comentário por @DanLugg como resposta, pois é o mais conveniente para Windows , IMHO:

  1. Clique com o botão direito do mouse na imagem e Copy Image URLno navegador.
  2. No Photoshop, escolha File->Open(ctrl-o) e cole o URL na parte do nome do arquivo da caixa de diálogo.
    • O Photoshop / Windows fará o download do URL para um arquivo temporário e o abrirá.

Para o OS X , não há campo em uma pasta / caixa de diálogo Abrir arquivo em que se possa colar um URI. Em vez disso, você deve baixar o arquivo e abri-lo (por exemplo, arraste do navegador para o Desktop, depois arraste o novo arquivo para o Dock ou para o documento do Photoshop) e exclua o arquivo temporário.


FWIW, isso parece ser um problema do Photoshop , não um problema no navegador ou no sistema operacional. No OS X e no Windows, posso copiar uma imagem PNG com transparência do Chrome (e também o Safari no OS X) e colá-la no Illustrator ou em outros aplicativos e manter a transparência. Somente o Photoshop é o culpado.

Phrogz
fonte
Isso é genial, não tinha idéia do Photoshop abrir diretamente de uma URL! Boa descoberta!
Doggie52
11
Esta opção não parece estar disponível para OSX. Alguém sabe?
Christine Cooper
@ChristineCooper A melhor opção que conheço para o OS X é fazer o download da imagem, abrir e excluir o original. É tão "fácil" quanto arrastar a imagem para uma pasta ou área de trabalho (que salva como um arquivo) e depois arrastá-lo para o Photoshop no Dock ou para um documento aberto do Photoshop. Testei uma variedade de opções usando o Chrome e o Safari, juntamente com o Photoshop CS6, e não consigo encontrar uma maneira melhor nem usar a área de transferência.
Phrogz
Sim, estou tentando evitar a opção de baixar e abrir e quero essencialmente reduzir as etapas. Arrastar e soltar também não funciona. Felizmente, os usuários do OSX poderão colar URLs no Photoshop no futuro. Obrigado!
Christine Cooper
Não é um problema do Photoshop. O problema é que o formato da área de transferência usado por quaisquer cópias que não seja realmente especificado como compatível com alfa. O Photoshop está apenas seguindo as especificações corretamente.
Nyerguds
2

Tente isto: copie a imagem transparente, cole no MS Word. ENTÃO copie-o (ou arraste / solte) da palavra e cole-o no outro programa de destino.

Encontrei uma pasta no Visio do Chrome que fica preta, mas funciona corretamente no Word e, em seguida, copiada do Word, ela cola de forma adequada e transparente no Visio.

JamieRI
fonte
não faça isso! Você perde o fundo transparente!
Andrei Krasutski 29/08
Não sei por que você está me dizendo para não fazê-lo, é o que faço para preservar a transparência ao usar o Visio. Também uso o Word para adicionar transparência (definir a cor do plano de fundo e / ou remover recursos do plano de fundo) quando não era uma imagem com transparência.
21718 JamieRI em:
1

Fiz uma solução alternativa que aborda o problema. A execução do meu script depois de copiar um PNG permite colar uma imagem do Chrome no Photoshop, Paint etc. com a transparência intacta.

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

Se você tiver algum problema, não hesite em me avisar aqui ou no Github!

Steve
fonte
Eu estaria interessado nos detalhes sobre isso. O que seu código faz? O que o Photoshop espera pela transparência que não está nos dados da área de transferência?
Phrogz
0

Você pode simplesmente arrastar a imagem do navegador para o Photoshop ou qualquer outro programa que lide adequadamente com um arquivo PNG.

Prumo
fonte
11
Parece uma boa sugestão, mas isso não funciona entre o Chrome e o Photoshop CC no Windows 7x64. O [+]cursor aparece no destino do Photoshop, mas nenhuma imagem é aberta como resultado.
Phrogz
0

Passei muito tempo investigando isso. Eu usei o Photoshop para copiar texturas semi-transparentes por algum tempo durante a criação de protótipos (com o destino do Axure RP).

Agora, tentei usar a nova API da área de transferência no html 5. Dissecei os arquivos PNG gerados por esse processo.

Se eu usar a área de transferência (com uma marca retangular) para copiar uma textura semi-transparente para o navegador com a API da área de transferência, ela definirá o byte alfa como FF (completamente opaco).

Se eu usar a API de arrastar e soltar para copiar um arquivo PNG 24 "Salvar como Web" no navegador, ele funcionará conforme o esperado e os pixels transparentes (e o byte alfa não será forçado a FF).

Nota: Mesmo que o Photoshop diga que é 24 bits, na verdade o exporta como 8 bits ainda (confirmado).

Homer6
fonte
0

Para quem se perguntar, se você obtiver uma cor de fundo preta em um arquivo PNG copiado, mesmo ao abri-lo manualmente, tente verificar se não há um canal alfa.

Parece que, dependendo de qual software foi usado para criar o PNG, a transparência às vezes é mantida dentro das camadas, mas outras vezes, em um canal alfa.

Um truque quando está no canal alfa é simplesmente CTRL + Clique na pequena visualização do canal alfa para selecioná-lo e depois criar uma máscara na camada com o fundo preto da seleção. (Em seguida, você pode excluir o canal alfa)

CMaxo
fonte
0

Então, eu me cansei desse aborrecimento e fiz uma solução alternativa.

Existem duas partes:

  • Um pequeno utilitário que escrevi para salvar a imagem da área de transferência em um arquivo .png
  • Um script AutoHotKey

O script AutoHotKey verifica se o Photoshop está ativo no momento e, se estiver, intercepta a combinação de teclas Ctrl+ Ve, em seguida, executa o utilitário.

Se o utilitário salvou uma imagem %TEMP%\clip.png, a combinação de teclas Shift+ Ctrl+ F12é enviada para o Photoshop, que mapeei para uma ação do Photoshop para colocar o clip.pngarquivo no documento aberto no momento.

Se o utilitário não salvou a imagem, a combinação padrão de teclas Ctrl+ Vé enviada ao Photoshop e uma pasta padrão é executada.

Todo o código-fonte está disponível aqui: https://github.com/SilverEzhik/ClipboardToPNG , e o utilitário pode ser baixado aqui: https://github.com/SilverEzhik/ClipboardToPNG/releases

Para criar a ação do Photoshop, basta fazer uma nova ação com a combinação de teclas mapeada para Shift + Ctrl + F12 (ou alterar a combinação no arquivo de script) e, durante a gravação, vá para File> Place Embedded...e cole %TEMP%\clip.pngno campo nome do arquivo.

O código fonte do script AHK é fornecido abaixo - se você não tiver usado o AutoHotKey antes, instale-o e salve o código em um filename.ahkarquivo no mesmo diretório que o utilitário ClipboardToPNG.exe e, em seguida, execute-o.

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
fonte