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.
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.
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.
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):
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:
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"
brew install imagemagick
Para instalar o Homebrew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null
-alpha remove -alpha off $i;
para -alpha remove -alpha off png24:$i;
ele, a saída será um PNG de 24 bits
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.
Você pode tentar imagemagick (também pode redimensionar facilmente para tamanhos diferentes):
convert in.png -background black -alpha remove -alpha off -resize 1024x1024 out.png
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.
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.
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.
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
fi
for 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.