J'ai une icône d'application pour iOS mais Apple n'autorise pas l'alpha dans l'image. Comment supprimer ce canal alpha? Je n'ai que l'image png avec moi. Je n'ai pas le fichier source, mon ami m'a fait l'image.
En supposant que vous n’ayez pas un autre éditeur d’image, vous pouvez l’ouvrir dans Preview sur votre Mac et utiliser l’option Exporter pour le réenregistrer dans un format différent. Pour vous assurer de vous débarrasser du canal alpha, il peut être préférable d’exporter. au format JPG (meilleure qualité), puis ouvrez-le et exportez-le à nouveau au format PNG.
Cela dit, je suppose que vous êtes probablement d'accord pour soumettre une icône avec un canal de transparence tant qu'il n'y a pas de transparence réelle.
La réponse acceptée pour exporter au format JPG, puis revenir au format PNG n'est pas recommandée.
Voici un moyen très rapide et facile de le faire sans l'exportation supplémentaire ni les économies au format JPG (avec perte):
Utilisation de l'application Aperçu (Mac):
Si vous utilisez l'application Aperçu, il n'est pas nécessaire d'exporter, puis de réexporter entre jpg et png. Il vous suffit de choisir exportation. Sous le type de fichier (PNG), vous verrez une case à cocher alpha, vous la désélectionnez et vous enregistrez.
Vous pouvez essayer imagemagick (aussi facilement redimensionner pour différentes tailles):
convert in.png -background black -alpha remove -alpha off -resize 1024x1024 out.png
si vous avez besoin de supprimer tous les canaux alpha du répertoire avec les icônes, utilisez cette commande:
for i in `ls *.png`; do convert $i -background black -alpha remove -alpha off $i; done
si vous avez Mac OS Mojave et avez "convertir la commande introuvable"
brew install imagemagick
Pour installer Homebrew
Ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null
Pour supprimer le canal alpha de png:
sur Mac: Preview version 9.0 (macOS Sierra) peut supprimer le canal alpha si vous exportez ou enregistrez l’image.
La version d’aperçu version 10.0 (944.2) (macOS High Sierra) ne supprime pas le canal alpha . Les options Exporter et/ou Enregistrer ne suppriment pas le canal alpha de l’image.
Je viens de recevoir l'erreur suivante lors de la tentative de téléchargement de mon application sur l'iTunes App Store:
les opérations de l'iTunes Store ont échoué
ERREUR ITMS-90717: "Icône de l'App Store non valide. L'icône App Store du catalogue d'actifs dans 'MyApp.app' ne peut être transparente ni contenir de canal alpha."
J'ai confirmé que les icônes de mon magasin d'applications incluaient le canal alpha en localisant l'actif dans le Finder et en recherchant ses informations (+ i). En dessous, plus d'info, il a montré:
Canal alpha: oui
Trouvez la solution ci-dessus pour utiliser Aperçu pour supprimer le canal alpha en l'exportant avec la case à cocher Alpha décochée, mais imaginez un moyen de les exporter par lots, car j'avais 18 actifs dont j'avais besoin pour effacer le canal alpha.
Pour que l'exportation par lots fonctionne, je sélectionnais tous les éléments de mon icône d'application dans le Finder> clic droit> ouvrir (ou ouvrir avec aperçu).
Tous les actifs vont maintenant apparaître dans la même fenêtre. Sélectionnez tout (⌘ + a), puis sélectionnez Fichier> Exporter les images sélectionnées…> Options de développement> décochez la case Alpha> Choisir (votre dossier de destination).
Terminé! Toutes vos images sont maintenant exportées sans le canal alpha.
Eh bien, puisque vous êtes sur un Mac, vous voudrez probablement utiliser Automator la prochaine fois. Convertissez l'image en BMP (sans perte) et revenez en PNG. Laissez-le sauver et le tour est joué ...
la case à cocher alpha n'est plus dans l'aperçu
J'ai mis la solution très agréable de Nikita Pushkar dans un script Shell qui convertit toutes les icônes iOS trouvées dans res/icon/ios
:
Il utilise brew pour installer imagemagick s’il n’est pas disponible, donc je suppose que cela ne fonctionnera que sur 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