GNU/Linux >> Tutoriels Linux >  >> Linux

Mise à l'échelle et rotation de l'image sans dépendre des données EXIF ?

Existe-t-il un simple éditeur d'image pour Linux qui permette de mettre à l'échelle et de faire pivoter l'image sans utiliser de données EXIF ​​pour la mise à l'échelle et la rotation ?

Enregistrement versus exportation

Je sais que vous dites que vous ne voulez pas vraiment faire cela dans GIMP, mais d'après mon expérience, le problème que vous rencontrez - un logiciel favorisant les données d'orientation EXIF ​​​​plutôt que la transformation réelle des pixels dans l'image - se résume à la différence entre l'exportation une image et enregistrement une image.

Dans le passé, 100 % de tous les éditeurs d'images du monde transformaient/modifiaient les pixels lorsqu'ils traitaient de simples transformations d'orientation. Ce n'est que relativement récemment que les programmes d'édition d'images s'en remettent à l'utilisation des données EXIF ​​​​pour stocker certaines données de transformation physique.

Pourquoi? Facile. Étant donné que le format JPEG est un format avec perte, même lorsque la qualité est définie sur 100 %, le fait de réenregistrer un JPEG pour des choses simples comme la rotation de l'image dégradera lentement les données. En revanche, en stockant ces données sous forme d'informations EXIF, l'image JPEG brute reste intacte mais les données de transformation sont transmises afin que vous puissiez voir l'image pivotée sans dégrader l'image dans le processus.

C'est là que le concept d'exportation entre en jeu. De nombreux programmes d'édition d'images tels que GIMP permettent d'exporter une image, ce qui signifie essentiellement modifier les données d'image elles-mêmes et les optimiser pour une utilisation dans un logiciel d'édition non-image.

Ainsi, bien qu'il puisse exister d'autres outils logiciels qui modifient explicitement les données d'image pour des tâches telles que la rotation, il peut être exagéré de les installer et de les utiliser. Au lieu de cela, je recommanderais simplement d'expérimenter la fonctionnalité d'exportation dans le logiciel de retouche d'image que vous utilisez; que ce soit GIMP, Photoshop ou autre chose.

Traitement par lots

Cela dit, vous mentionnez à quel point GIMP pourrait prendre trop de temps pour vos besoins. Vous ne savez pas quel est votre flux de travail exact, mais si vous avez un dossier/répertoire rempli de fichiers JPEG que vous devrez peut-être traiter, je vous recommande d'enquêter sur les outils mentionnés dans cette autre réponse :

  • exiftran  :Un outil utilisé pour transformer les images JPEG d'un appareil photo numérique qui peut effectuer les opérations suivantes :

Il peut faire des rotations sans perte comme jpegtran, mais contrairement à jpegtran, il se soucie des données EXIF :il peut faire pivoter les images automatiquement en vérifiant la balise d'orientation exif, il met à jour les informations exif si nécessaire (dimension de l'image, orientation), il fait également pivoter l'exifthumbnail. Il peut traiter plusieurs images à la fois.

  • JHead :En utilisant spécifiquement jhead avec le -autorot option décrite comme :

À l'aide de la balise "Orientation" de l'en-tête Exif, faites pivoter l'image pour qu'elle soit droite. Le programme 'jpegtran' est utilisé pour effectuer la rotation. Ce programme est présent dans la plupart des distributions Linux. Pour Windows, vous devez en obtenir une copie. Après la rotation, la balise d'orientation de l'en-tête Exif est définie sur '1' (orientation normale). L'Exifthumbnail est également tournée. Les autres champs de l'en-tête Exif, y compris les dimensions, ne sont pas modifiés, mais la hauteur/largeur JPEG est ajustée.

Cette fonctionnalité est particulièrement utile avec les nouveaux appareils photo numériques, qui définissent automatiquement le champ d'orientation dans l'en-tête Exif à l'aide d'un capteur d'orientation intégré à l'appareil photo.

Voici un autre outil mentionné dans cet autre fil :

  • NConvertir :NConvert est le convertisseur d'image multi-format en ligne de commande pour Win32, Linux, DOS, OS/2 et d'autres plates-formes. Les détails de démarrage rapide semblent être ici. Et il semble que si vous utilisez nconvert avec le -jpegtrans option qui correspond exactement à ce que vous recherchez. Mais je me demande si cela utilise simplement la même fonctionnalité de bibliothèque/noyau de jpegtran comme le recommande cette autre réponse à cette question ?

Enfin, peut-être en utilisant ImageMagick convert outil avec le -auto-orient cette option fonctionnerait-elle pour vous ?

-orientation automatique

ajuste une image afin que son orientation soit adaptée à la visualisation (c'est-à-dire l'orientation en haut à gauche).

Cet opérateur lit et réinitialise le paramètre de profil d'image EXIF ​​"Orientation", puis effectue la rotation appropriée de 90 degrés sur l'image pour orienter l'image, pour un affichage correct.

Ce paramètre de profil EXIF ​​est généralement défini à l'aide d'un appareil photo numérique à capteur de gravité, mais les photos prises directement vers le bas ou vers le haut peuvent ne pas avoir une valeur appropriée. De même, les images dont l'orientation a été « corrigée » sans réinitialiser ce paramètre peuvent être « corrigées » à nouveau, ce qui entraîne un résultat incorrect. Si le profil EXIF ​​a été précédemment supprimé, l'opérateur -auto-orient ne fera rien.


J'utilise habituellement jpegtran pour faire pivoter des photos :

jpegtran -copy all -rotate 90 -outfile newimg.jpg oldimg.jpg

90 tourne à droite, utilisez 270 pour la gauche (et 180 pour le retournement).


Lors de l'exportation dans GIMP, vous pouvez cliquer sur Avancé dans la fenêtre contextuelle juste avant d'enregistrer où vous pouvez désactiver EXIF ​​et XMP.

L'algorithme global pour le script :

  1. Pour chaque fichier.
  2. Enregistrer la valeur de exiftool * | grep Orientation .
  3. Supprimer exif avec exiftran -ai * .
  4. Utilisez convert -rotate avec la valeur de l'étape 2.

Linux
  1. Extraire et afficher des données avec awk

  2. Pourquoi les données sont importantes et comment les protéger

  3. Tutoriels Honeypot - Modes et fonctionnement de Honeypot

  4. Comment démarrer et arrêter OSWatcher

  5. Valider les données dans un conteneur mysql

Gestion des données manquantes en Python :causes et solutions

Comment télécharger et télécharger une image cloud dans OpenStack

Apache Cassandra :fonctionnalités et installation

Créer une image d'un serveur et restaurer un serveur à partir d'une image enregistrée

FAQ sur le disque système et le disque de données

Je souhaite modifier le DPI avec ImageMagick sans modifier la taille réelle en octets des données d'image