Comment réduire l'image de 30% dans Unix?

15

Je veux couper 30% du haut de l'image. Je connais le fil Comment couper une très grande image raster en petits morceaux? mais il n'y a pas d'approche réussie car je ne peux pas trouver une mesure de distance convertde zéro à la fin , uniquement par des dimensions de valeur absolue. Pseudocode

convert -crop-y -units-percentage 0x30 heart.png 

Fig.1 Figure d'entrée

entrez la description de l'image ici

Je peux faire la tâche avec LaTeX adjustboxmais la sortie dans le fichier pdf n'est pas vraiment le résultat final mais une présentation de celui-ci. La copie de l'image à partir du document pdf produit donc l'image d'origine. Cette approche a donc échoué.

Léo Léopold Hertz 준영
la source
1
Vous pouvez utiliser imagemagick identifypour voir la taille de l'image.
pfnuesel
L'approche générale consiste à insérer la valeur requise sur la ligne de commande à l'aide de $(command). Il vous suffit alors d'écrire une ligne de commande qui peut calculer la valeur nécessaire. Ici, vous demanderiez à convertir de décrire l'image et de la diriger vers awk où vous pouvez faire correspondre la valeur dont vous avez besoin et faire le calcul nécessaire et imprimer le résultat.
Thorbjørn Ravn Andersen

Réponses:

23

Vous pouvez recadrer un pourcentage de votre image, mais dans ce cas, pour éviter d'exécuter des commandes supplémentaires pour obtenir la hauteur et la largeur de l'image (afin de calculer le décalage de recadrage qui, par défaut, est relatif au coin supérieur gauche), vous devrez également recadrer par rapport à la gravité (de sorte que la position de décalage de votre recadrage soit relative au coin inférieur gauche de l'image):

convert -gravity SouthWest -crop 100x70%x+0+0 infile.jpg outfile.jpg
don_crissti
la source
Confirmée, cette approche fonctionne! - - Vous pouvez inverser cette approche, etc. en NorthWestcoupant du bas. Génial!
Léo Léopold Hertz
5

La commande doit être:

convert heart.png -gravity south -crop 100x70% +repage heart-out.png
GAD3R
la source
1
@ LéoLéopoldHertz 준영 J'ai mal compris la question, essayez ma modification s'il vous plaît
GAD3R
1
Votre nouvelle approche coupe en unités absolues et non en pourcentages. Maintenant, la bonne direction de coupe à partir du haut.
Léo Léopold Hertz