web-dev-qa-db-fra.com

Supprimer le canal alpha dans une image

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.

56
zbz.lvlv

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.

34
danielquokka

La réponse acceptée pour exporter au format JPG, puis revenir au format PNG n'est pas recommandée.

  • C'est une étape supplémentaire dans le processus (2 exportations)
  • JPG est une perte, vous perdrez donc des données d'image

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):

  1. Ouvrir l'image
  2. Command-Shift-S à dupliquer (crée une copie)
  3. Command-S to Save
  4. Décochez la case "Alpha"
  5. Supprimer "copie" du nom de fichier (y compris l'espace)
    • Cela écrasera votre original. Si vous voulez conserver l’original, laissez simplement "copie" dans le nom.
  6. Sauvegarder
  7. Cliquez sur 'Remplacer' pour confirmer que vous souhaitez écraser l'original
    • Nécessaire uniquement si vous écrasez votre original  remove alpha channel
140
Mycah

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.

31
ospfranco

Il n'est pas nécessaire d'exporter l'image au format jpg en premier. Vous pouvez décocher la case correspondant au canal alpha et exporter directement d'un fichier png vers un fichier png sans canal alpha dans l'application de prévisualisation.

 enter image description here

12
Stefan

Vous pouvez essayer imagemagick (aussi facilement redimensionner pour différentes tailles):

convert in.png -background black -alpha remove -alpha off -resize 1024x1024 out.png
9
Psychomentality

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
7
Nikita Pushkar

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.

5
Hynek

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.

5
Toland Hon

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é ...

2
Anticro

la case à cocher alpha n'est plus dans l'aperçu

1
vboombatz

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
0
Pedi T.