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

10

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?

Jusqu'à présent, j'ai essayé EOG , Shotwell et GIMP et quand je fais pivoter les images, ils les stockent dans l'en-tête EXIF. Ça, je ne veux pas.

Même si GIMP pouvait le faire, cela prend beaucoup trop de temps car il nécessite des tonnes de clics de souris lors du traitement des fichiers JPEG.

Jasmine Lognnes
la source
2
Donc, fondamentalement, si vous faites pivoter une image de 90 degrés vers la gauche, vous voulez que l'image elle-même soit tournée de 90 degrés vers la gauche? Pas via les informations stockées dans les données EXIF, n'est-ce pas?
JakeGould
Exactement. J'en ai besoin car les fichiers Github README.md ne comprennent pas EXIF.
Jasmine Lognnes
Bingo! J'ai posté une réponse plus complète, mais je crois que le problème que vous rencontrez est la différence fondamentale entre l' enregistrement d' une image dans un programme de retouche d'image moderne et l' exportation d' une image. Ma réponse va plus en détail, mais je crois que si vous exportez un JPEG via GIMP, vous obtiendrez les résultats exacts que vous souhaitez sans avoir à traiter avec les données EXIF ​​étant favorisées pour des transformations telles que la mise à l'échelle et la rotation.
JakeGould
L'utilisation de l'exportation de GIMP sur un fichier jpeg dépouillé exif en a ajouté un nouveau.
Jasmine Lognnes
Oui, il a peut-être ajouté de nouvelles données EXIF, mais les données d'image réelles ont-elles été modifiées pour correspondre à l'orientation comme votre question l'a demandé?
JakeGould

Réponses:

15

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?

Sauvegarde contre exportation

Je sais que vous déclarez que vous ne voulez pas vraiment le faire 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 de transformer réellement les pixels de l'image - se résume à la différence entre l' exportation d' une image et enregistrer une image.

Dans le passé, 100% de tous les éditeurs d'images dans le monde transformaient / modifiaient réellement les pixels lorsqu'ils traitaient avec des transformations d'orientation simples. Ce n'est que relativement récemment que les programmes de retouche d'image 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 à 100% - l'enregistrement d'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 en tant qu'informations EXIF, l'image JPEG brute reste inchangée 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'image tels que GIMP permettent d'exporter une image, ce qui signifierait essentiellement modifier les données d'image elles-mêmes et l'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 avec la fonctionnalité d'exportation dans le logiciel de retouche d'image que vous utilisez; que ce soit GIMP, Photoshop ou autre chose.

Le traitement par lots

Cela dit, vous mentionnez que GIMP peut prendre trop de temps pour vos besoins. Je ne sais pas quel est votre flux de travail exact, mais si vous avez un dossier / répertoire rempli de JPEG que vous devrez peut-être traiter, je recommanderais d' étudier les outils mentionnés dans cette autre réponse :

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

Il peut effectuer 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 la miniature exif . Il peut traiter plusieurs images à la fois.

À l'aide de la balise «Orientation» de l'en-tête Exif, faites pivoter l'image de manière à ce 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). La vignette Exif 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 fonction 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 :

  • NConvert : NConvert est le convertisseur d'image de ligne de commande multiformat pour Win32, Linux, DOS, OS / 2 et d'autres plateformes. Les détails de démarrage rapide semblent être ici . Et il semble que si vous utiliseznconvertl'-jpegtransoption, c'est exactement ce que vous recherchez. Mais je me demande si cela utilise simplement la même bibliothèque / fonctionnalité de basejpegtranque cette autre réponse à cette question recommande?

Enfin, peut-être que l'utilisation de l' outil ImageMagick convert avec l' -auto-orientoption fonctionnerait pour vous?

-auto-orient

ajuste une image de sorte 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 une visualisation correcte.

Ce paramètre de profil EXIF ​​est généralement défini à l'aide d'un capteur de gravité dans un appareil photo numérique, 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 à nouveau «corrigées», ce qui entraîne un résultat incorrect. Si le profil EXIF ​​a été préalablement supprimé, l'opérateur -auto-orient ne fera rien.

JakeGould
la source
Ce serait parfait si un outil de ligne de commande pouvait effectuer la rotation réelle des pixels basée sur EXIF, puis effacer les informations EXIF ​​par la suite. Est-ce possible?
Jasmine Lognnes
1
@JasmineLognnes Je ne l' ai pas fait utilisé l' un de ces outils moi-même , mais cette question est une bonne référence pour les outils que je devrais il me semble enquêter mais que exiftranet jpegtranpeut - être ce que vous recherchez. Je voudrais expérimenter les options de ces deux outils et voir ce qui se passe. Du mieux que je puisse faire. Bonne chance!
JakeGould
1
Vous pourriez trouver humoristique que le système ait sélectionné cette réponse comme test d'audit dans la file d'attente de révision de LQ Post. J'ai voté pour ne pas le supprimer, BTW, et apparemment, c'était la bonne réponse. :-)
fixer1234
@ fixer1234 Oui, je l'ai vu moi-même quand j'ai vérifié les messages de mauvaise qualité plus tôt. Hilarant! Cela pourrait avoir été déclenché par la quantité de liens divers vers des packages disparates qui me sont recommandés. Mais salut! Je suis heureux qu'il existe un mécanisme de contrôle automatisé qui comporte au moins un composant de filtrage humain.
JakeGould
2

J'utilise habituellement jpegtranpour faire pivoter les photos:

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

90 tourne à droite, utilisez 270 pour gauche (et 180 pour flip).

choroba
la source
2

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 l'écrire

  • pour chaque fichier
  • économiser de la valeur de exiftool * | grep Orientation
  • supprimer exif avec exiftran -ai *
  • utiliser convert -rotateavec la valeur de l'étape 2
d2xdt2
la source
Ceci est exactement ce que je cherchais. Un moyen qui détecte si l'image est pivotée, puis un moyen de la faire pivoter en fonction de cela. Merci!
xarlymg89
0

Vous pouvez utiliser Exiftool pour supprimer les données EXIF ​​des images JPEG.

SPRBRN
la source
Oui, c'est parfait pour cela, mais lorsque je modifie les images par la suite, de nouveaux en-têtes EXIF ​​sont ajoutés.
Jasmine Lognnes du
EXIFTool peut supprimer les données, mais il ne modifiera pas, ne fera pas pivoter ni ne mettra à l'échelle et l'image. Il effacera simplement ces données et le JPEG s'affichera alors dans le format brut dans lequel il existait à l'origine. Ceci est utile dans certains cas, mais pas dans un cas comme celui-ci.
JakeGould