J'ai une icône d'application pour iOS mais Apple n'autorise pas l'alpha à être dans l'image. Comment supprimer ce canal alpha? Je n'ai que l'image png avec moi Je n'ai pas le fichier source car mon ami l'a fait pour moi.
J'ai une icône d'application pour iOS mais Apple n'autorise pas l'alpha à être dans l'image. Comment supprimer ce canal alpha? Je n'ai que l'image png avec moi Je n'ai pas le fichier source car mon ami l'a fait pour moi.
Réponses:
En supposant que vous ne disposez pas d'un autre éditeur d'image, vous pouvez l'ouvrir dans Aperçu 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 en 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 vers JPG, puis revenir en PNG n'est pas recommandée.
Voici un moyen très rapide et facile de le faire sans l'exportation supplémentaire ni l'enregistrement au format JPG (avec perte):
À l'aide de l'application Aperçu (Mac):
hasAlpha: yes
. De plus, iTunes Store se plaint du canal alpha indésirable («L'opération a échoué - L'icône de l'App Store… ne peut pas être transparente ni contenir un canal alpha»).
convert in.png -alpha off out.png
. Ré. Aperçu: l'activation / la désactivation de "alpha" dans la boîte de dialogue d'exportation modifie la taille de fichier prévue, mais l'enregistrement écrit toujours le fichier avec les informations alpha (et la taille correspondante).
si vous avez besoin de supprimer tous les canaux alpha du répertoire avec des 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 que la "commande de conversion est introuvable"
brew install imagemagick
Pour installer Homebrew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null
-alpha remove -alpha off $i;
de -alpha remove -alpha off png24:$i;
sortie sera un 24bit .png
Si vous utilisez l'application Aperçu, il n'est pas nécessaire d'exporter puis de réexporter entre jpg et png, choisissez simplement exporter et sous le type de fichier (PNG), vous verrez une case à cocher alpha, désactivez-la et enregistrez-la.
Vous pouvez essayer imagemagick (également redimensionner facilement pour différentes tailles):
convert in.png -background black -alpha remove -alpha off -resize 1024x1024 out.png
Je viens de recevoir l'erreur suivante lors de la tentative de téléchargement de mon application sur l'App Store iTunes:
Échec des opérations de l'iTunes Store
ERREUR ITMS-90717: "Icône de l'App Store non valide. L'icône de l'App Store dans le catalogue d'actifs de" MyApp.app "ne peut pas être transparente ni contenir de canal alpha."
J'ai confirmé que les icônes de mon App Store incluaient le canal alpha en localisant l'élément dans le Finder et en recherchant ses informations (⌘ + i). Sous Plus d'informations, il a montré:
Canal alpha: Oui
J'ai trouvé la solution ci-dessus pour utiliser Aperçu pour supprimer le canal alpha en l'exportant avec la case Alpha décochée, mais j'ai trouvé un moyen de les exporter par lots puisque j'avais 18 actifs dont j'avais besoin pour supprimer le canal alpha.
La façon dont j'ai fait fonctionner l'exportation par lots consistait à sélectionner tous les éléments d'icône de mon application dans le Finder> clic droit> ouvrir (ou ouvrir avec aperçu)
Tous les actifs apparaîtront désormais dans la même fenêtre. Sélectionnez tout (⌘ + a), puis sélectionnez Fichier> Exporter les images sélectionnées…> Développer les options> décochez la case Alpha> Choisir (votre dossier de destination)
Terminé! Toutes vos images sont maintenant exportées avec le canal alpha supprimé.
Pour supprimer le canal alpha de png:
sur Mac: la version d'aperçu 9.0 (macOS Sierra) peut supprimer le canal alpha si vous exportez ou enregistrez l'image.
La version préliminaire 10.0 (944.2) (macOS High Sierra) ne supprime pas le canal alpha. L'exportation et / ou l'enregistrement ne suppriment pas le canal alpha de l'image.
Ayant rencontré le même problème dans le contexte des applications Flutter, j'ai dédié un site Web simple à cette tâche où vous pouvez supprimer les canaux alpha des images:
Fondamentalement, j'exécute ImageMagick en utilisant Web Assembly directement dans le navigateur, donc aucune de vos images n'est téléchargée et vous n'avez besoin d'aucun autre outil comme Gimp.
J'ai mis la très belle solution 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 qu'il 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
J'ai eu ce même problème, mais les autres réponses ne fonctionnaient pas pour moi maintenant (c'est peut-être un bogue Apple). J'ai compris que vous pouvez utiliser ce site Web pour supprimer le canal alpha d'une image.