2012-07-09 1 views
4

J'ai eu du mal à trouver comment définir une couleur (noire dans mon cas) pour qu'elle soit transparente dans un GIF en utilisant ImageMagick. Comment puis-je faire cela à un ensemble d'images GIF existantes?Comment définir une couleur transparente dans un fichier GIF à l'aide d'ImageMagick?

J'ai essayé cette option, mais il ne semble pas faire quoi que ce soit:

mogrify -transparent-color black -transparent black *.gif 

Je l'ai lu cela, mais il semble un peu déconcertant dans ce qui rend en fait une couleur devenu transparent dans un GIF : http://www.imagemagick.org/Usage/formats/#boolean_trans

Par exemple:

Notez que le réglage « -transparent couleurs » ne pas ajouter de la transparence à une image GIF, ni convertir spécifié couleur pour devenir transparent. Tout ce que l'option fait est de spécifier quelle couleur doit être placée dans la table de couleurs pour l'indice de couleur utilisé qui représente les couleurs transparentes dans une image GIF.

Si vous souhaitez changer une couleur spécifique (exacte) pour devenir transparent, utilisez l'opérateur de remplacement de couleur «transparent».

mais ...

Utilisation + transparent pour inverser les pixels correspondants. Cela fait que toutes les couleurs non-assorties sont transparentes. L'opérateur -opaque est exactement le même que -transparent mais remplace par la couleur correspondante avec le paramètre de couleur de remplissage actuel, plutôt que par transparent. Cependant, l'opérateur -transparent s'assure également que l'image a un canal alpha activé, conformément à "-alpha set", et ne nécessite pas de modifier le canal pour activer la gestion du canal alpha. Notez que cela ne définit pas la couleur comme étant la «couleur de transparence » utilisée pour les formats d'image mappés en couleur, tels que GIF. Pour cette utilisation -transparent-color

+0

votre image était à l'origine un GIF ou vous l'avez créée en la renommant? –

+0

L'image était à l'origine au format PNG, mais je les ai tous convertis en GIF maintenant. –

+0

quelle ligne de commande vous utilisez pour cela –

Répondre

6

Je voudrais vous avertir de l'utilisation mogrify. mogrify convertit les images en écrasant celles d'origine. Si quelque chose ne va pas, vos images ont disparu.

Utilisez plutôt convert. Vous pouvez toujours supprimer vos images originales après vous être assuré que la conversion est correcte.

Pour faire des pixels noirs transparents, utilisez ceci:

convert orig.gif -transparent black transp.gif 

fonctionne parfaitement pour moi.

Ma version d'IM: ImageMagick 6.7.8-0 2012-07-04 Q16. Quel est ton?

Si cela ne fonctionne toujours pas pour vous, le «noir» dans vos GIF peut ne pas être noir après tout, mais seulement gris très foncé. ImageMagick a également des outils pour énumérer toutes les couleurs dans un GIF. Les 2 commandes suivantes peuvent vous aider dans ce cas:

identify \ 
    -format "%f: - Uniq Colors: %k - Image transparency channel enabled: %A - Image Depth: %z %c\n" \ 
    *.gif 

et

convert \ 
    *.gif \ 
    -format "%f :\n%c\n\n" \ 
    histogram:info: 

Utilisation de couleur noire peut être identifié par son nom « noir », par valeurs RVB « (0, 0, 0) 'ainsi que par la valeur hexadécimale' # 000000 '. Ainsi, les noirs purs doivent apparaître dans la sortie de la dernière commande quelque chose comme:

5000: ( 0, 0, 0) #000000 black 

gris foncé pourrait être par exemple:

100: (14, 14, 14,255) #0E0E0E srgba(14,14,14,1) 
2100: ( 1, 1, 1,255) #010101 srgba(1,1,1,1) 

Une fois la transparence activé dans votre GIF, la dernière commande devrait affiche un tuple de 4 valeurs pour chaque couleur, la dernière valeur représentant le canal Alpha. Votre anciennement noir apparaîtrait dans la sortie sous la forme:

5000: ( 0, 0, 0, 0) #00000000 none 
-2

Essayez la couleur de fond une fois que vous l'avez générée au format GIF.

Vérifiez l'adresse http://www.imagemagick.org/script/mogrify.php pour les options de mogrify et d'arrière-plan. Voir l'image ci-dessous.

enter image description here

+0

Peux-tu m'en dire un exemple? –

+0

fourni un exemple. –

+0

Comment "couleur de fond" rend une couleur transparente? Il ne dit pas cela dans votre lien n'importe où. –

Questions connexes