Alternativement: Comment prendre un PNG non carré et "remplir" le "reste" de l'image avec transparence afin que l'image carrée résultante ait l'image d'origine centrée dans le carré?
En fin de compte, ce que je veux, c'est prendre n'importe quelle image de n'importe quel format pris en charge par GM de n'importe quelle taille, et créer un PNG réduit (disons, 40 pixels maximum pour chaque dimension), avec un rapport d'aspect maintenu, avec un rembourrage de transparence pour les non carrés images originales ET avec un masque de transparence PNG 40x40 déjà préparé appliqué.
Je sais déjà comment réduire et conserver les proportions; J'ai déjà la commande pour appliquer mon composite. Ma seule pièce manquante est la mise en carré d'images non carrées (remplissage avec transparence).
Commande unique préférée; chaîne multi-commandes acceptable.
(Éditer)
Information supplémentaire: voici la commande composite que j'utilise:
gm composite -compose copyopacity mask.png source-and-target.png source-and-target.png
où mask.png a des pixels blancs pour ce que je veux garder de source-and-target.png et des pixels transparents pour ce que je veux supprimer (et devenir transparent) de source-and-target.png.
composite
?-filter Catrom
avant l'thumbnail
option car d'après mon expérience, elle produit généralement des images de meilleure qualité.Une commande pour convertir tous les PNG à partir d'un dossier:
mogrify est une commande du package ImageMagick. Vous devez d'abord créer un répertoire de sortie.
la source
-path resized
de modifier les fichiers en place.gm mogrify
et au lieu de-path resized
, utilisez-create-directories -output-directory resized
Voici ce que j'ai finalement choisi. Un processus en deux étapes:
Où mask.png correspond aux pixels blancs pour ce que je voulais conserver et aux pixels transparents pour ce que je voulais masquer (jeter).
la source