Ho un'icona dell'app per iOS ma Apple non consente la presenza di alpha nell'immagine. Come rimuovere questo canale alfa? Ho solo l'immagine png con me Non ho il file sorgente come il mio amico ha fatto l'immagine per me.
Ho un'icona dell'app per iOS ma Apple non consente la presenza di alpha nell'immagine. Come rimuovere questo canale alfa? Ho solo l'immagine png con me Non ho il file sorgente come il mio amico ha fatto l'immagine per me.
Risposte:
Supponendo che tu non abbia un altro editor di immagini, puoi aprirlo in Anteprima sul tuo Mac e utilizzare l'opzione Esporta per salvarlo di nuovo in un formato diverso: per assicurarti di eliminare il canale alfa, potrebbe essere meglio esportare in JPG (migliore qualità), quindi aprilo ed esportalo di nuovo come PNG.
Detto questo, sospetto che tu stia probabilmente inviando un'icona con un canale di trasparenza purché non ci sia trasparenza effettiva.
La risposta accettata per esportare in JPG, quindi tornare in PNG non è consigliata.
Ecco un modo super veloce e facile per farlo senza l'esportazione extra o il salvataggio in JPG (con perdita):
Utilizzando l'app Anteprima (Mac):
hasAlpha: yes
. Inoltre, iTunes Store si lamenta del canale alfa indesiderato ("Operazione non riuscita - L'icona dell'App Store ... non può essere trasparente né contenere un canale alfa").
convert in.png -alpha off out.png
. Ri. Anteprima: l'attivazione / disattivazione di "alpha" nella finestra di dialogo di esportazione cambia la dimensione del file prevista, ma il salvataggio scrive sempre il file con le informazioni alfa (e la dimensione corrispondente).
se hai bisogno di rimuovere tutto il canale alfa dalla directory con le icone usa questo comando:
for i in `ls *.png`; do convert $i -background black -alpha remove -alpha off $i; done
se hai Mac OS Mojave e hai "convert command not found"
brew install imagemagick
Per installare Homebrew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null
-alpha remove -alpha off $i;
ad -alpha remove -alpha off png24:$i;
esso, verrà emesso un png a 24 bit
Se stai utilizzando l'app Anteprima, non è necessario esportare quindi riesportare tra jpg e png, basta scegliere esporta e sotto il tipo di file (PNG) vedrai una casella di controllo alfa, deselezionala e salva.
Puoi provare imagemagick (anche ridimensionare facilmente per diverse dimensioni):
convert in.png -background black -alpha remove -alpha off -resize 1024x1024 out.png
Ho appena ricevuto il seguente errore durante il tentativo di caricare la mia app sull'App Store di iTunes:
Operazioni su iTunes Store non riuscite
ERRORE ITMS-90717: "Icona App Store non valida. L'icona App Store nel catalogo risorse in" MyApp.app "non può essere trasparente né contenere un canale alfa."
Ho confermato che le icone del mio app store includevano il canale alfa individuando la risorsa nel Finder e cercando le sue informazioni (⌘ + i). Sotto Altre informazioni, mostrava:
Canale alfa: sì
Ho trovato la soluzione sopra per utilizzare Anteprima per rimuovere il canale alfa esportandolo con la casella di controllo Alpha deselezionata, ma ho trovato un modo per esportarli in batch poiché avevo 18 risorse da cui dovevo rimuovere il canale alfa.
Il modo in cui ho ottenuto l'esportazione in batch per funzionare è stato quello di selezionare tutte le risorse dell'icona della mia app nel Finder> fare clic con il tasto destro> apri (o apri con anteprima)
Tutti gli asset verranno ora visualizzati nella stessa finestra. Seleziona tutto (⌘ + a), quindi seleziona File> Esporta immagini selezionate ...> Espandi Opzioni> deseleziona la casella di controllo Alpha> Scegli (la cartella di destinazione)
Fatto! Tutte le tue immagini vengono ora esportate con il canale alfa rimosso.
Per rimuovere il canale alfa da png:
su Mac: la versione di anteprima 9.0 (macOS Sierra) può rimuovere il canale alfa se esporti o salvi l'immagine.
La versione di anteprima 10.0 (944.2) (macOS High Sierra) non rimuove il canale alfa. Sia Esporta che / o Salva non rimuove il canale alfa dall'immagine.
Avendo riscontrato lo stesso problema nel contesto delle applicazioni Flutter, ho dedicato un semplice sito Web a questa attività in cui è possibile rimuovere i canali alfa delle immagini:
Fondamentalmente eseguo ImageMagick utilizzando Web Assembly direttamente nel browser, quindi nessuna delle tue immagini viene caricata e non hai bisogno di altri strumenti come Gimp.
Ho inserito la soluzione molto bella di Nikita Pushkar in uno script di shell che converte tutte le icone iOS trovate in res/icon/ios
:
Usa brew per installare imagemagick se non è disponibile, quindi immagino che funzionerà solo su 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
Ho avuto lo stesso problema, ma le altre risposte non hanno funzionato per me ora (potrebbe essere un bug di Apple). Ho capito che puoi usare questo sito web per rimuovere il canale alfa da un'immagine.