Eu tenho um ícone de aplicativo para iOS, mas a Apple não permite que alfa esteja na imagem. Como remover este canal alfa? Eu só tenho a imagem png comigo. Não tenho o arquivo de origem, pois meu amigo fez a imagem para mim.
Abrir o PNG em um editor de imagens e salvar novamente com o canal alfa desativado?
Alexander O'Mara,
1
A resposta aceita perde dados de imagem e tem etapas extras desnecessárias. Em vez disso, consulte a solução abaixo: stackoverflow.com/a/38256612/5764320
Mycah
Também fiz uma pequena ferramenta, onde você pode simplesmente arrastar e soltar suas imagens e remover o canal alfa, sem perder os dados da imagem: removealphachannel.com
Ali Nasserzadeh
Respostas:
48
Supondo que você não tenha outro editor de imagens, você pode abri-lo na visualização em seu Mac e usar a opção Exportar para salvá-lo novamente em um formato diferente - para garantir que você se livre do canal alfa, pode ser melhor exportar para JPG (melhor qualidade), abra-o e exporte-o como PNG novamente.
Dito isso, suspeito que você provavelmente está OK em enviar um ícone com um canal de transparência, desde que não haja transparência real.
Isso resultará em uma pequena perda de qualidade e também em um arquivo PNG maior, pois o formato PNG não é adequado para compactar o tipo de artefatos que você obtém ao produzir um arquivo JPG. Além disso, a Apple rejeita imagens PNG com canais alfa, mesmo que não haja transparência real.
philwilks
Experimentei uma versão mais antiga do macOS Sierra e funcionou.
Bhaumik Desai
8
Na verdade, você pode simplesmente desmarcar a caixa de seleção "Alpha" ao exportar para PNG. Não há necessidade de exportar para JPG primeiro.
Petr Peller
Como fazer operação em dados de imagem para reduzir os canais de imagem de 4 para 3?
voldikss
4
Não serão aceitos PNGs com canal de transparência, independentemente de haver transparência na imagem ou não.
gbarnett
236
A resposta aceita para exportar para JPG e, em seguida, voltar para PNG não é recomendada.
É uma etapa extra no processo (2 exportações)
JPG apresenta perdas, então você perderá alguns dados da imagem
Esta é uma maneira super rápida e fácil de fazer isso sem precisar exportar ou salvar em arquivos JPG (com perdas):
Usando o aplicativo de visualização (Mac):
Abra a imagem
Command-Shift-S para duplicar (cria uma cópia)
Command-S para salvar
Desmarque a caixa de seleção "Alfa"
Exclua "cópia" do nome do arquivo (incluindo o espaço)
Isso irá sobrescrever seu original, se você quiser manter o original, apenas deixe "cópia" no nome
Salve
Clique em 'Substituir' para confirmar que deseja substituir o original
Só é necessário se você estiver substituindo o original
^ esta é uma resposta melhor, IMHO. JPG não suporta canais alfa e isso permitirá que você use um formato LOSSLESS e lide com o canal alfa (em vez de evitá-lo).
Cody-PHP-jQuery
4
Não entendo porque a equipe da iTunes Store mostra esse erro (canal Alfa) nos ícones do app de relógio, quando nas versões anteriores eles os consideram corretos. Tempo perdido! Obrigado Apple Inc!
Markus
Muito obrigado pela solução sem perdas!
Shchvova
10
Com o macOS High Sierra, a visualização parece salvar PNGs sempre COM um canal alfa, mesmo se a caixa de seleção estiver desmarcada. Se eu abrir o arquivo salvo, a caixa de informações sempre dirá "Possui Alpha: 1". A ferramenta goles também me diz hasAlpha: yes. Além disso, a iTunes Store reclama sobre o canal alfa indesejado ("Falha na operação - O ícone da App Store ... não pode ser transparente nem conter um canal alfa").
Stefan,
2
Como mencionado por @Psychomentally, ImageMagick finalmente funcionou para mim: convert in.png -alpha off out.png. Ré. Visualização: ligar / desligar "alfa" na caixa de diálogo de exportação altera o tamanho do arquivo previsto, mas salvar sempre grava o arquivo com as informações alfa (e o tamanho correspondente).
Stefan
53
se você precisar remover todos os canais alfa do diretório com ícones, use este comando:
for i in`ls *.png`;do convert $i -background black -alpha remove-alpha off $i;done
se você tiver Mac OS Mojave e tiver "comando de conversão não encontrado"
isso dá uma imagem de saída de 8 bits em vez de 24 bits
Stepan Yakovenko
Se você mudar -alpha remove -alpha off $i;para -alpha remove -alpha off png24:$i; ele, a saída será um PNG de 24 bits
Lawrence Ryerson Davis IV
37
Se você estiver usando o aplicativo de visualização, não há necessidade de exportar e reexportar entre jpg e png, apenas escolha exportar e abaixo do tipo de arquivo (PNG) você verá uma caixa de seleção alfa, desmarque-a e salve.
Eu costumava usar esse método, mas no MacOS High Sierra, desmarcar Alpha na visualização não faz nada a menos que você escolha JPG como saída. Se eu tentar abrir um PNG, Exportar PNG sem Alpha e abrir o novo PNG, ele tem um canal Alpha.
Dan Loughney
Trabalhou para mim em High Sierra (10.13.4)
fl034 de
13
Você pode tentar imagemagick (também pode redimensionar facilmente para tamanhos diferentes):
convert in.png -background black -alpha remove-alpha off -resize 1024x1024out.png
como faço para selecionar o arquivo png no cmd bash
Marlhex
Marlhexs-MacBook-Pro: Edgar marlhex $ ls LUNCH SCREEN.jpg nuevo icon-5.png LUNCH SCREEN.png nuevo icon-51024 copy.jpg nuevo icon-5.jpg nuevo icon-51024.png Marlhexs-MacBook-Pro: Edgar marlhex $ nuevo icon-51024.png -bash: nuevo: comando não encontrado
Marlhex
13
Não há necessidade de exportar a imagem para jpg primeiro. Você pode desmarcar a caixa de seleção do canal alfa e exportar diretamente de um png para um png sem canal alfa no aplicativo de visualização.
Acabei de receber o seguinte erro ao tentar enviar meu aplicativo para a loja de aplicativos do iTunes:
Falha nas operações da iTunes Store
ERROR ITMS-90717: "Ícone da App Store inválido. O ícone da App Store no catálogo de ativos em 'MyApp.app' não pode ser transparente nem conter um canal alfa."
Confirmei que os ícones da minha app store incluíam o canal alfa localizando o ativo no Finder e procurando suas informações (⌘ + i). Abaixo de Mais informações, mostrava:
Canal alfa: Sim
Encontrei a solução acima para usar o Preview para remover o canal alfa, exportando-o com a caixa de seleção Alpha desmarcada, mas descobri uma maneira de exportá-los em lote, pois eu tinha 18 ativos dos quais precisava remover o canal alfa.
A maneira como a exportação em lote funcionou foi selecionando todos os ativos de ícones do meu aplicativo no localizador> clique com o botão direito> abrir (ou abrir com visualização)
Todos os ativos agora aparecerão na mesma janela. Selecione todos (⌘ + a) e selecione Arquivo> Exportar imagens selecionadas ...> Opções de expansão> desmarque a caixa de seleção Alfa> Escolha (sua pasta de destino)
Feito! Todas as suas imagens agora são exportadas com o canal alfa removido.
Isso destaca 2 problemas recentes do facepalm da Apple .... High Sierra ignorando uma opção de salvar E o motivo pelo qual muitas pessoas estão aqui, o Xcode repentinamente não pode carregar aplicativos por causa da transparência do ícone
MobileVet
4
Tendo encontrado o mesmo problema no contexto de aplicativos Flutter, dediquei um site simples para esta tarefa, onde você pode remover canais alfa de imagens:
Basicamente, eu executo o ImageMagick usando o Web Assembly diretamente no navegador, então nenhuma de suas imagens é carregada e você não precisa de nenhuma outra ferramenta como o Gimp.
Ainda consigo ver e usar, você tem que exportar o arquivo.
Oscar
2
Eu posso apoiar isso, acabou.
Wep0n
2
Bem, já que você está em um Mac, da próxima vez você provavelmente só vai querer usar o Automator. Converta a imagem em BMP (sem perdas) e de volta em PNG. Deixe isso salvar e voila ...
Eu coloquei a solução muito boa de Nikita Pushkar em um script de shell que converte todos os ícones iOS encontrados em res/icon/ios:
Ele usa o brew para instalar o Imagemagick se não estiver disponível, então eu acho que só funcionará no Mac.
#! /usr/bin/env bash## remove alpha channel from PNG images when App Store upload fails## taken from https://stackoverflow.com/a/52962485 - @Nikita Pushkar## make sure to have brew installed, see https://brew.sh:# /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"## make sure to have imagemagick installed, see https://imagemagick.org:# brew install imagemagick#if command -v convert;then
echo "imagemagick seems to be installed"else
echo "imagemagick not installed, trying to install ..."if command -v brew;then
echo "brew is installed, using it"else
echo "brew not installed, trying to install ..."/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"fi
brew install imagemagick
fifor i in`ls res/icon/ios/*.png`;do
echo "convert $i"
convert $i -background white -alpha remove-alpha off $i;done
Eu tive o mesmo problema, mas as outras respostas não funcionaram para mim agora (pode ser um bug da Apple). Eu descobri que você pode usar este site para remover o canal alfa de uma imagem.
Respostas:
Supondo que você não tenha outro editor de imagens, você pode abri-lo na visualização em seu Mac e usar a opção Exportar para salvá-lo novamente em um formato diferente - para garantir que você se livre do canal alfa, pode ser melhor exportar para JPG (melhor qualidade), abra-o e exporte-o como PNG novamente.
Dito isso, suspeito que você provavelmente está OK em enviar um ícone com um canal de transparência, desde que não haja transparência real.
fonte
A resposta aceita para exportar para JPG e, em seguida, voltar para PNG não é recomendada.
Esta é uma maneira super rápida e fácil de fazer isso sem precisar exportar ou salvar em arquivos JPG (com perdas):
Usando o aplicativo de visualização (Mac):
fonte
hasAlpha: yes
. Além disso, a iTunes Store reclama sobre o canal alfa indesejado ("Falha na operação - O ícone da App Store ... não pode ser transparente nem conter um canal alfa").convert in.png -alpha off out.png
. Ré. Visualização: ligar / desligar "alfa" na caixa de diálogo de exportação altera o tamanho do arquivo previsto, mas salvar sempre grava o arquivo com as informações alfa (e o tamanho correspondente).se você precisar remover todos os canais alfa do diretório com ícones, use este comando:
se você tiver Mac OS Mojave e tiver "comando de conversão não encontrado"
Para instalar o Homebrew
fonte
-alpha remove -alpha off $i;
para-alpha remove -alpha off png24:$i;
ele, a saída será um PNG de 24 bitsSe você estiver usando o aplicativo de visualização, não há necessidade de exportar e reexportar entre jpg e png, apenas escolha exportar e abaixo do tipo de arquivo (PNG) você verá uma caixa de seleção alfa, desmarque-a e salve.
fonte
Você pode tentar imagemagick (também pode redimensionar facilmente para tamanhos diferentes):
fonte
Não há necessidade de exportar a imagem para jpg primeiro. Você pode desmarcar a caixa de seleção do canal alfa e exportar diretamente de um png para um png sem canal alfa no aplicativo de visualização.
fonte
Acabei de receber o seguinte erro ao tentar enviar meu aplicativo para a loja de aplicativos do iTunes:
Confirmei que os ícones da minha app store incluíam o canal alfa localizando o ativo no Finder e procurando suas informações (⌘ + i). Abaixo de Mais informações, mostrava:
Encontrei a solução acima para usar o Preview para remover o canal alfa, exportando-o com a caixa de seleção Alpha desmarcada, mas descobri uma maneira de exportá-los em lote, pois eu tinha 18 ativos dos quais precisava remover o canal alfa.
A maneira como a exportação em lote funcionou foi selecionando todos os ativos de ícones do meu aplicativo no localizador> clique com o botão direito> abrir (ou abrir com visualização)
Todos os ativos agora aparecerão na mesma janela. Selecione todos (⌘ + a) e selecione Arquivo> Exportar imagens selecionadas ...> Opções de expansão> desmarque a caixa de seleção Alfa> Escolha (sua pasta de destino)
Feito! Todas as suas imagens agora são exportadas com o canal alfa removido.
fonte
Para remover o canal alfa do png:
no Mac: a versão de visualização 9.0 (macOS Sierra) pode remover o canal alfa se você exportar ou salvar a imagem.
A versão de visualização 10.0 (944.2) (macOS High Sierra) não remove o canal alfa. Exportar e / ou Salvar não remove o canal alfa da imagem.
fonte
Tendo encontrado o mesmo problema no contexto de aplicativos Flutter, dediquei um site simples para esta tarefa, onde você pode remover canais alfa de imagens:
Remover canal alfa
Basicamente, eu executo o ImageMagick usando o Web Assembly diretamente no navegador, então nenhuma de suas imagens é carregada e você não precisa de nenhuma outra ferramenta como o Gimp.
fonte
a caixa de seleção alfa não está mais na visualização
fonte
Bem, já que você está em um Mac, da próxima vez você provavelmente só vai querer usar o Automator. Converta a imagem em BMP (sem perdas) e de volta em PNG. Deixe isso salvar e voila ...
fonte
Eu coloquei a solução muito boa de Nikita Pushkar em um script de shell que converte todos os ícones iOS encontrados em
res/icon/ios
:Ele usa o brew para instalar o Imagemagick se não estiver disponível, então eu acho que só funcionará no Mac.
fonte
Eu tive o mesmo problema, mas as outras respostas não funcionaram para mim agora (pode ser um bug da Apple). Eu descobri que você pode usar este site para remover o canal alfa de uma imagem.
fonte