it-swarm-pt.tech

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

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

Existe alguma solução para isso? Isso é um problema do navegador, um problema de aplicativo ou um problema do sistema operacional com a área de transferência?

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

44
Ryan Elkins

Copy-Paste não mantém a transparência. Tente salvar o arquivo e use Open File no Photoshop. AFAIK, Paint não tem a capacidade de salvar arquivos png habilitados para transparência.

29
Gani Simsek

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

  1. Clique com o botão direito na imagem e Copy Image URL no 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 baixará o URL para um arquivo temporário e o abrirá

Para OS X , não há campo em uma caixa de diálogo Abrir Arquivo/Folha, onde se pode colar um URI. Em vez disso, você deve fazer o download do arquivo e abri-lo (por exemplo, arrastar do navegador para a área de trabalho e arrastar o novo arquivo para o Dock ou para o documento do Photoshop) e, em seguida, excluir o arquivo temporário.


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

11
Phrogz

Tente isto: copie a imagem transparente, cole no MS Word. Em seguida, copie-o (ou arraste/solte) do Word e cole-o no outro programa de destino.

Eu encontrei um colar no Visio do Chrome fica preto, mas funciona corretamente no Word e, em seguida, copiado do Word ele cola corretamente e de forma transparente no Visio.

2
JamieRI

Eu fiz uma solução que resolve o problema. Executar meu script depois de copiar um PNG permite que você cole uma imagem do Chrome no Photoshop, no Paint, etc. com a transparência intacta.

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

Se você tiver algum problema com isso, sinta-se à vontade para me informar aqui ou no Github!

1
Steve

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

0
Bob

Para qualquer pessoa que esteja se perguntando, se você obtiver uma cor de plano 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 fazer o PNG, a transparência às vezes é mantida dentro das camadas, mas em outro momento, é mantida em um canal alfa.

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

0
CMaxo

Eu passei muito tempo olhando para isso. Eu usei o Photoshop para copiar texturas semitransparentes por algum tempo durante a prototipagem (com o destino do Axure RP).

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

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

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

Nota: Mesmo que o Photoshop diga que é de 24 bits, ele realmente exporta como 8 bits ainda (confirmado).

0
Homer6

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

Existem duas partes para isso:

  • 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á atualmente ativo e, em caso afirmativo, intercepta a combinação de teclas Ctrl + V e, em seguida, executa o utilitário.

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

Se o utilitário não salvou a imagem, o combo de chave padrão Ctrl + V é enviado para o 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 o Photoshop Action, 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, em seguida, durante a gravação, vá para File> Place Embedded... e cole %TEMP%\clip.png no arquivo campo de nome.

O código-fonte para o script AHK é fornecido abaixo - se você nunca usou o AutoHotKey antes, instale-o e salve o código em um arquivo filename.ahk no mesmo diretório que o utilitário ClipboardToPNG.exe e 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
0
Ezhik