Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 08/11/2015, à 11:40

JujuLand

[Résolu] Traitement d'image avec convert (imagemagick)

Bonjour,

J'ai une série d'image dont je veux extraire un partie seulement, et enregistrer ensuite.

Exemple:
image originelle de 1280 x 1024
image désirée de 1152x925
Il y a un décalage x de 60et un décalage y de 55

J'utilise la commande suivante:

alain@gramps-jujuland $ convert "source.png" -crop 1152x925+60+55 "target.png"

Ca fonctionne très bien , et j'ai bien ce que j'attendais.

eog m'affiche bien le résultat, mais gimp me l'affiche avec un décalage du calque qui correspond évidemment aux décalages.

Existe-t-il une commande supplémentaire (peut-être à appliquer ultérieurement) qui permette de déplacer le calque de manière à ce qu'il se superpose au calque transparent.
Bien sûr, je peux le faire avec gimp, mais j'aurais voulu le faire en ligne de commande.

Merci
A+

Dernière modification par JujuLand (Le 08/11/2015, à 15:38)


Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)

Hors ligne

#2 Le 08/11/2015, à 12:22

pingouinux

Re : [Résolu] Traitement d'image avec convert (imagemagick)

Bonjour,
Je viens de tester. Le problème n'apparaît pas avec une image .jpg.
En lançant gimp avec une image .png, il me prévient qu'un décalage est enregistré dans l'image, et me demande si je veux en tenir compte.

Hors ligne

#3 Le 08/11/2015, à 12:49

JujuLand

Re : [Résolu] Traitement d'image avec convert (imagemagick)

Bon, je ne veux pas utiliser du jpeg (la qualité est bien meilleure en png).

Gimp ne me prévient pas, mais c'est évident à l'oeil nu ... Cà doit dépendre de la version de gimp ... la mienne 2.6.12
Existe-t-il une commande de convert qui puisse corriger çà ?
Y'en a tellement dans le man, qu'il est difficile de s'y retrouver ...

A+

Dernière modification par JujuLand (Le 08/11/2015, à 12:51)


Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)

Hors ligne

#4 Le 08/11/2015, à 13:03

pingouinux

Re : [Résolu] Traitement d'image avec convert (imagemagick)

Gimp ne me prévient pas, mais c'est évident à l'oeil nu ...

Voici ma version de gimp

$ gimp --version
GNU Image Manipulation Program version 2.8.10

et à l'ouverture de l'image, je peux choisir d'avoir un décalage ou pas.

Je ne sais pas si c'est possible directement avec convert.

Hors ligne

#5 Le 08/11/2015, à 13:09

JujuLand

Re : [Résolu] Traitement d'image avec convert (imagemagick)

Je suis en train de regarder Gimp, et il y a une option qui semble non interactive qui pourrait convenir:

 -b, --batch <command>
               Execute  <command>  non-interactively.  This  option may appear
               multiple times.  The <command> is passed to  the  batch  inter‐
               preter. When <command> is - the commands are read from standard
               input.

J'ai vu que dans les menus, il y a une entrée qui permet de déplacer le calque actif
Outils -> Outils de transformation -> Déplacement

A savoir s'il est possible de le faire avec des valeurs et dans un batch.
De plus, il va falloir trouver la syntaxe des scripts.

A+


Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)

Hors ligne

#6 Le 08/11/2015, à 13:22

JujuLand

Re : [Résolu] Traitement d'image avec convert (imagemagick)

Dans le navigateur de procédure de Gimp (Aide -> Navigateur de procédure), j'ai trouvé çà:

gimp-layer-set-offsets
     Procédure interne de GIMP
     Set the layer offsets.
Paramètres
     layer LAYER The layer
     offx   INT32 Offset in x direction
     offy   INT32 Offset in y direction
Informations supplémentaires
     This procedure sets the offsets for the specified
     layer. The offsets are relative to the image origin
     and can be any values. This operation is valid
     only on layers which have been added to an image.

Cà semble coller, reste à savoir si çà peut être appelé depuis un script-fu

Je verrai bien un script du style :

file-png-load "source.png"
gimp-layer-set <layer> -60 -55
file-png-save

Reste à trouver, si c'est bien çà, la syntaxe, et notamment que donner pour <layer>

A+

Dernière modification par JujuLand (Le 08/11/2015, à 13:22)


Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)

Hors ligne

#7 Le 08/11/2015, à 13:37

JujuLand

Re : [Résolu] Traitement d'image avec convert (imagemagick)

J'essaye de voir comment créer un script.

Il y a une console script-fu qui semble se prêter aux tests.
Filtres -> Script-Fu -> Console

Voici mes premiers essais:

Bienvenue sur TinyScheme
Copyright (c) Dimitrios Souflis
Console Script-Fu - Développement Scheme interactif

> file-png-load /home/alain/Documents/Anais/Histoire/Histoire_139.png
#<CLOSURE>Error: eval: unbound variable: /home/alain/Documents/Anais/Histoire/Histoire_139.png 

> file-png-load "/home/alain/Documents/Anais/Histoire/Histoire_139.png"
#<CLOSURE>"/home/alain/Documents/Anais/Histoire/Histoire_139.png"

> gimp-layer-set <layer> -60 -55
Error: eval: unbound variable: gimp-layer-set 

> gimp-layer-set 1 -60 -55
Error: eval: unbound variable: gimp-layer-set

> gimp-layer-set "1" -60 -55
Error: eval: unbound variable: gimp-layer-set

- Il semble qu'il faille entourer le nom du fichier entre "
- je n'ai manifestement pas trouvé comment on nomme un calque ...

A+


Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)

Hors ligne

#8 Le 08/11/2015, à 14:08

Coeur Noir

Re : [Résolu] Traitement d'image avec convert (imagemagick)

Pour le jpeg, c'est forcément possible de lui passer des paramètres de qualité, dans ImageMagick.

Mais comme indiqué ici http://www.imagemagick.org/Usage/formats/#jpg il y a forcèment de la perte - c'est relatif aussi à la qualité de l'image "source".

Ça me paraît plus clair ici http://www.imagemagick.org/script/comma … hp#quality

Cela ne resterait-il pas plus simple que d'essayer de rédiger un script pour Gimp ?

Dernière modification par Coeur Noir (Le 08/11/2015, à 14:14)


DébuterDocBien rédigerRetour commandeInsérer image | illustrations & captures d'écran <>

Hors ligne

#9 Le 08/11/2015, à 15:16

Compte anonymisé

Re : [Résolu] Traitement d'image avec convert (imagemagick)

Bonjour,

imagemagick a écrit :

-crop geometry{@}{!}
Cut out one or more rectangular regions of the image.

See Image Geometry for complete details about the geometry argument.

The width and height of the geometry argument give the size of the image that remains after cropping, and x and y in the offset (if present) gives the location of the top left corner of the cropped image with respect to the original image. To specify the amount to be removed, use -shave instead.

If the x and y offsets are present, a single image is generated, consisting of the pixels from the cropping region. The offsets specify the location of the upper left corner of the cropping region measured downward and rightward with respect to the upper left corner of the image. If the -gravity option is present with NorthEast, East, or SouthEast gravity, it gives the distance leftward from the right edge of the image to the right edge of the cropping region. Similarly, if the -gravity option is present with SouthWest, South, or SouthEast gravity, the distance is measured upward between the bottom edges.

If the x and y offsets are omitted, a set of tiles of the specified geometry, covering the entire input image, is generated. The rightmost tiles and the bottom tiles are smaller if the specified geometry extends beyond the dimensions of the input image.

You can add the @ to the geometry argument to equally divide the image into the number of tiles generated.

By adding a exclamation character flag to the geometry argument, the cropped images virtual canvas page size and offset is set as if the geometry argument was a viewport or window. This means the canvas page size is set to exactly the same size you specified, the image offset set relative top left corner of the region cropped.

If the cropped image 'missed' the actual image on its virtual canvas, a special single pixel transparent 'missed' image is returned, and a 'crop missed' warning given.

It might be necessary to +repage the image prior to cropping the image to ensure the crop coordinate frame is relocated to the upper-left corner of the visible image. Similarly you may want to use +repage after cropping to remove the page offset that will be left behind. This is especially true when you are going to write to an image format such as PNG that supports an image offset.

donc essaye ça :

alain@gramps-jujuland $ convert "source.png" -crop 1152x925+60+55 +repage "target.png"

Cordialement

Dernière modification par Compte anonymisé (Le 08/11/2015, à 15:17)

#10 Le 08/11/2015, à 15:27

JujuLand

Re : [Résolu] Traitement d'image avec convert (imagemagick)

Effectivement, j'avais trouvé çà avant d'aller manger, et j'avais commencé une réponse qui y faisait référence.

Cà explique aussi pourquoi çà ne se produit pas avec le jpeg.

Bon j'essaye, et je confirme.

Cà confirma aussi toute la valeur de cet outil extraordinaire, mais aussi sa complexité hmm

Merci
A+

Dernière modification par JujuLand (Le 08/11/2015, à 15:30)


Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)

Hors ligne

#11 Le 08/11/2015, à 15:38

JujuLand

Re : [Résolu] Traitement d'image avec convert (imagemagick)

Nickel chrome smile

Merci
A+


Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)

Hors ligne