Why is it that when I copy/paste PNG files with a transparent background into photoshop that they show up with a black background, whereas if I save them, then open they're transparent? I find it unlikely that the alpha channel would be omitted when copying.
Resumo
Copiar e colar tem duas partes: a origem e o destino. O que acontece quando você copia e cola depende de ambos lados.
Copiando PNGs / imagens transparentes
Quando você copia um PNG, pode fazê-lo de mais de uma maneira.
Você pode copiar o arquivo .png
real, em cujo caso o nome do arquivo e o caminho do arquivo são copiados para a área de transferência. Nesse caso, quando você cola, o programa de recebimento deve ser capaz de entender esse formato específico da área de transferência e abrir o nome do arquivo contido nele. Nesse caso, não deve ser diferente de usar o comando File->Open
.
Se, por outro lado, você tiver a foto aberta em um editor / visualizador e copiar os pixels reais da foto, isso depende do editor / visualizador:
-
Se copiar apenas os dados de cor, o programa de recebimento exibirá somente os dados de cor que, no caso de imagens com transparência, podem conter preto ou outra cor nas áreas transparentes.
-
Se o editor / visualizador copiar apenas os pixels renderizados, o programa de recebimento colará a imagem final com as áreas transparentes que mostram que a cor de segundo plano no editor / visualizador estava definida quando você copiou. / p>
-
Se o editor / visualizador copiou os dados de cor, bem como os dados de transparência, o programa de recebimento colará a imagem conforme o esperado, com a transparência correta.
Você pode ver isso em ação ao usar um editor de ícones. Dependendo dos programas que você usa, se você copiar um ícone que tenha transparência para outro programa como o MSPaint, ele poderá resultar em resultados inesperados nas áreas transparentes.
Formatos da Área de Transferência
O problema é que existem apenas alguns padrão formatos da área de transferência incluindo texto, arquivos e dados de bitmap. Para qualquer dado personalizado a ser copiado, o programa deve registrá-lo e copiar seus dados para a área de transferência. Nesse caso, cabe ao programa receptor saber o formato personalizado e decodificá-lo. O formato de bitmap padrão é para imagens planas e não tem conceito de transparência (foi projetado há muito tempo). Dessa forma, os programas precisam fornecer imagens transparentes para a área de transferência em um formato personalizado e, embora existam algumas que sejam comuns, não há um formato padrão único. Alguns programas só copiarão a imagem para o formato de bitmap plano, o que, é claro, significa nenhuma informação de transparência.
Silver Lining
No lado positivo, um programa pode colocar vários itens na área de transferência (de formato diferente), portanto, se um editor / visualizador for mais esperto, colocará uma cópia dos dados (neste caso, uma imagem transparente) vários formatos e, em seguida, cabe ao programa de recebimento usar a melhor versão com mais informações.
Por exemplo, quando você copia arquivos ou pastas, eles são copiados em não menos que quatro formatos no XP e mais em 7 (há alguns outros dados copiados também, mas quero dizer os nomes / caminhos reais dos arquivos). Alguns deles são mais úteis porque incluem a perda de dados sobre os arquivos copiados, enquanto alguns são muito mais simples e incluem apenas o nome em texto simples do primeiro arquivo.
O mesmo vale para copiar imagens transparentes. Um programa pode colocar uma imagem simples, plana e renderizada no formato de bitmap da área de transferência, pode incluir as informações de transparência em um formato de transparência personalizado e uma cópia bruta da imagem com todos os seus dados, incluindo transparência, camadas etc. outro formato personalizado.
É claro que, como eu disse, cabe ao destinatário compreender e usar a melhor versão, caso contrário, pode acabar usando a cópia padrão simples, antiga e compatível com versões anteriores.