2009-09-29 4 views
5

J'ai un certain nombre d'images d'entrée qui contiennent plusieurs images plus petites, toutes dans une seule ligne. Toutes les images contenues sont de la même taille. Ainsi, par exemple, l'image input.png peut être 480x48 et contenir 10 48x48 images, toutes en une seule ligne. En utilisant l'outil imagemagick convert (ou tout autre outil fourni avec la suite defaul imagemagick), je veux écrire un script bash qui prend une image d'entrée, le nombre d'images à couper, puis les coupe toutes en images individuelles .Comment écrire un script bash qui coupe les images en morceaux en utilisant la magie de l'image?

L'interaction de l'utilisateur que je peux faire, mais je n'ai pas pu obtenir convert pour faire la coupe réelle. Quelqu'un peut-il suggérer quelque chose? À la lecture des pages de manuel, je pense que cela devrait fonctionner:

convert 'input.png[0x0+48+48]' output.png

mais je reçois une erreur:

convert: no pixels defined in cache tb_icons_l.png' @ magick/cache.c/OpenCache/3572. convert: No IDATs written into file 1.png' @ coders/png.c/PNGErrorHandler/1391.

Toutes les idées?

Répondre

5

Je crois que vous avez échangé position et taille. Essayez:

convert 'input.png[48x48+0+0]' output.png 

La troisième image serait:

convert 'input.png[48x48+96+0]' output.png 

Ou

convert 'input.png[48x48+0+96]' output.png 
+0

Merci, quel idiot! – Thomi

Questions connexes