J'ai une image hexagonale avec des pièces d'autres hexagones proches. Parce que l'image par défaut est carrée, mais hexagone est, eh bien, hexagone.
Cela ressemble à ceci:
p>
mais rien n'a fonctionné.
Mais j'aimerais éliminer ces triangles en dehors de la frontière pour garder l'hexagone avec fond transparent.
J'ai essayé avec Script AutoTrim et essayé différentes combinaisons de commandes ImageMagick, qui Avoir le but d'étendre la frontière blanche et de remplacer la couleur blanche à transparent.
de
Convertir BASE.PNG -FUZZ 10% -TRIM + REPAGE OUT.PNG CODE>
Magick Base.png \ (-Clone 0 -fuzz 15% -fill blanc + blanc + opaque blanc -Draw "Couleur $ CENTE, $ CENTY inondation" \) -Alpha off -Comment SRC -Commosite Out.png Code> de
Composite -Comment SRC -GRAVITY CENTER BASE.PNG -AlPHA SET OUT.PNG CODE>
de
Et j'ai utilisé la commande, basée sur Ce Réponse
Magick Base.png \ (-Clone 0 -Fuzz 15% -Lefill noir + opaque "RGB (255 255 255)" -Lefill blanc + opaque blanche blanche blanc -Draw "couleur $ CENTX, $ CENTY inondation" \) - Alpha Off -commose Copy_opity -Composite Out.png Code> P>
Donc, ma question est,
3 Réponses :
Utiliser ImageMagick 6.9.10.78 sur Mac OSX, je reçois ce qui suit:
entrée: p>
convert DB8m5.png -fill white -fuzz 95% \
-floodfill +0+0 black \
-rotate 90 -floodfill +0+0 black \
-rotate 90 -floodfill +0+0 black \
-rotate 90 -floodfill +0+0 black \
-rotate 90 \
-bordercolor white -border 1 \
-fuzz 0 -fill none \
-floodfill +0+0 white \
-shave 1 \
result.png
Merci pour la solution, mais je ne pouvais pas le faire fonctionner. Après à l'aide de l'inondation à chaque coin code>, il y a toujours de petites lignes blanches. Je suppose que ce comportement causé par différentes images d'image Magick (j'utilise 7.0.9-8). Mais merci pour la solution que vous avez faite ici ImageMagick.org/Discourse -Server / viewtopic.php? t = 36543 # P1680 67 J'ai mis à jour le courant et dans quelques images, les itérations peuvent obtenir le résultat souhaité.
Votre titre est un peu déroutant. Mais voyez mon ajout dans ma réponse pour vous débarrasser de la frontière blanche ainsi que des coins.
avec ImageMagick V6 ou V7 Vous pouvez recadrer un hexagone assez précis à partir de n'importe quelle image d'entrée avec une commande comme celle-ci ...
convert -size 1000x1155 xc:white \ -background none -virtual-pixel none \ -distort SRT 60 -distort SRT 60 \ wizard: +distort SRT "%[fx:min(t?1:v.w/u.w,t?1:v.h/u.h)] 0" \ -gravity center -compose srcin -composite -shave 1 hexout.png
Merci pour la solution, mais j'ai déjà hexagone et je n'ai pas besoin de créer un autre.
Si vous avez déjà l'hexagone, utilisez-le comme masque pour un simple composite alpha. Ignorer la partie de mon exemple avant de lire dans l'image d'entrée et il suffit de lire dans votre image de masque là-bas. C'est frapper votre forme de masque hexagone hors de l'original et laisserez les coins transparents.
La solution que j'ai proposée était de faire une chaîne d'appels pour changer l'image. Ceci est une solution modifiée et étendue fournie avec ici
CENT_X="$(magick $filename -format "%[fx:w/2]" info:)" CENT_Y="$(magick $filename -format "%[fx:h/2]" info:)" magick $filename \( -clone 0 -fuzz 1% -fill black +opaque "rgb(255,255,255)" -fill white +opaque black -fill white -draw "color $CENT_X,$CENT_Y floodfill" \) -alpha off -compose copy_opacity -composite $filename_prep.png convert $filename_prep.png -fuzz 10% -transparent white $filename