132 votes

Définissez un arrière-plan transparent en utilisant ImageMagick et l'invite de commande

Supposons que vous ayez une image (PNG ou JPG). Cette image a un fond blanc et j'ai besoin de rendre ce fond transparent.

J'ai essayé avec ces exemples :

  • convert original.png -background none transparent.png
  • convert original.png -background white -flatten -alpha off transparent.png

mais sans résultats satisfaisants.

Comment puis-je le faire ?

IMPORTANT : Utiliser la commande convert en ligne de commande.

11voto

fmw42 Points 6778

En utilisant ImageMagick, c'est très similaire au code et au résultat de hackerb9, mais c'est une commande en ligne un peu plus simple. Il suppose que le pixel en haut à gauche est la couleur d'arrière-plan. Je remplis simplement l'arrière-plan avec de la transparence, puis je sélectionne le canal alpha et le floute et supprime la moitié de la zone floue en utilisant -level 50x100%. Ensuite, je réactive tous les canaux et je l'aplatis contre la couleur marron. Le -blur 0x1 -level 50x100% agit pour anti-aliaser les limites de la transparence du canal alpha. Vous pouvez ajuster la valeur de tolérance, la quantité de flou et la valeur -level 50% pour changer le degré d'anti-aliasing.

convert logo: -fuzz 25% -fill none -draw "matte 0,0 floodfill" -channel alpha -blur 0x1 -level 50x100% +channel -background saddlebrown -flatten result.jpg

entrer la description de l'image ici

5voto

Gokul N K Points 1610

Si vous souhaitez contrôler le niveau de transparence, vous pouvez utiliser rgba où a est l'alpha. 0 pour transparent et 1 pour opaque. Assurez-vous que le fichier de sortie final doit avoir l'extension .png pour la transparence.

convert 
  test.png 
    -channel rgba 
    -matte 
    -fuzz 40% 
    -fill "rgba(255,255,255,0.5)" 
    -opaque "rgb(255,255,255)" 
       semi_transparent.png

1voto

stacigh Points 628

Oui. J'ai également eu le même problème. Voici la commande que j'ai exécutée et elle a fonctionné parfaitement : convert transparent-img1.png transparent-img2.png transparent-img3.png -channel Alpha favicon.ico

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X