GNU/Linux >> Tutoriales Linux >  >> Linux

¿Escalado y rotación de imagen sin depender de datos EXIF?

¿Existe un editor de imágenes simple para Linux que permita escalar y rotar la imagen sin usar datos EXIF ​​para escalar y rotar?

Guardar versus Exportar

Sé que dices que realmente no quieres hacer esto en GIMP, pero en mi experiencia, el problema con el que te encuentras (software que favorece los datos de orientación EXIF ​​en lugar de transformar píxeles en la imagen) se reduce a la diferencia entre exportar una imagen y guardar una imagen.

En el pasado, el 100 % de todos los editores de imágenes del mundo realmente transformaban/modificaban píxeles cuando se trataba de transformaciones de orientación simples. Hace relativamente poco tiempo que los programas de edición de imágenes prefieren usar datos EXIF ​​para almacenar algunos datos de transformación física.

¿Por qué? Fácil. Dado que el formato JPEG es un formato con pérdida, incluso cuando la calidad está configurada al 100 %, volver a guardar un JPEG para cosas simples como la rotación de la imagen degradará lentamente los datos. Por el contrario, al almacenar esos datos como información EXIF, la imagen JPEG sin procesar se deja intacta, pero los datos de transformación se transmiten para que pueda ver la imagen girada sin degradar la imagen en el proceso.

Aquí es donde entra en juego el concepto de exportación. Muchos programas de edición de imágenes, como GIMP, permiten exportar una imagen, lo que básicamente significaría modificar los datos de la imagen y optimizarlos para su uso en un software de edición que no sea de imágenes.

Entonces, si bien puede haber otras herramientas de software que modifican explícitamente los datos de la imagen para tareas como la rotación, puede ser excesivo instalarlas y usarlas. En su lugar, recomendaría simplemente experimentar con la funcionalidad de exportación en cualquier software de edición de imágenes que esté utilizando; ya sea GIMP, Photoshop o algo más.

Procesamiento por lotes

Dicho todo esto, usted menciona cómo GIMP podría consumir demasiado tiempo para sus necesidades. No está claro cuál es su flujo de trabajo exacto, pero si tiene una carpeta/directorio lleno de archivos JPEG que podría necesitar procesar, recomendaría investigar las herramientas mencionadas en esta otra respuesta:

  • exiftran :una herramienta utilizada para transformar imágenes JPEG de cámaras digitales que puede hacer lo siguiente:

Puede hacer rotaciones sin pérdidas como jpegtran, pero a diferencia de jpegtran, se preocupa por los datos EXIF:puede rotar imágenes automáticamente al verificar la etiqueta de orientación EXIF, actualiza la información EXIF ​​si es necesario (dimensión de la imagen, orientación), también rota la miniatura EXIF. Puede procesar varias imágenes a la vez.

  • Cabeza J :Específicamente usando jhead con el -autorot opción que se describe como:

Usando la etiqueta 'Orientación' del encabezado Exif, gire la imagen para que quede en posición vertical. El programa 'jpegtran' se utiliza para realizar la rotación. Este programa está presente en la mayoría de las distribuciones de Linux. Para Windows, debe obtener una copia. Después de la rotación, la etiqueta de orientación del encabezado Exif se establece en '1' (orientación normal). La Exifthumbnail también se gira. Otros campos del encabezado Exif, incluidas las dimensiones, no se modifican, pero se ajusta la altura/anchura de JPEG.

Esta característica es especialmente útil con las cámaras digitales más nuevas, que configuran el campo de orientación en el encabezado Exif automáticamente usando un sensor de orientación integrado en la cámara.

Aquí hay otra herramienta mencionada en este otro hilo:

  • NConvert :NConvert es el convertidor de imágenes de línea de comandos multiformato para Win32, Linux, DOS, OS/2 y otras plataformas. Los detalles de inicio rápido parecen estar aquí. Y parece que si usa nconvert con el -jpegtrans opción que es exactamente lo que estás buscando. Pero me pregunto si eso solo usa la misma funcionalidad de biblioteca/núcleo de jpegtran como recomienda esta otra respuesta sobre esta pregunta?

Finalmente, tal vez usando ImageMagick convert herramienta con el -auto-orient opción funcionaría para usted?

-orientación automática

ajusta una imagen para que su orientación sea adecuada para su visualización (es decir, orientación superior izquierda).

Este operador lee y restablece la configuración del perfil de imagen EXIF ​​'Orientación' y luego realiza la rotación adecuada de 90 grados en la imagen para orientarla, para una visualización correcta.

Esta configuración de perfil EXIF ​​generalmente se establece utilizando un sensor de gravedad en una cámara digital, sin embargo, las fotos tomadas directamente hacia abajo o hacia arriba pueden no tener un valor apropiado. También las imágenes a las que se les ha 'corregido' la orientación sin restablecer esta configuración, pueden volver a 'corregirse' y dar como resultado un resultado incorrecto. Si el perfil EXIF ​​se eliminó previamente, el operador de orientación automática no hará nada.


Usualmente uso jpegtran para rotar fotografías:

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

90 gira a la derecha, usa 270 para la izquierda (y 180 para voltear).


Al exportar en GIMP, puede hacer clic en Avanzado en la ventana emergente justo antes de guardar donde puede deshabilitar EXIF ​​y XMP.

El algoritmo general para escribirlo:

  1. Para cada archivo.
  2. Guardar valor de exiftool * | grep Orientation .
  3. Eliminar EXIF ​​con exiftran -ai * .
  4. Utilice convert -rotate con el valor del paso 2.

Linux
  1. Por qué los datos son importantes y cómo protegerlos

  2. ¿Jpg a PDF sin pérdida de datos?

  3. ¿Cómo cambiar el nombre de varias fotos y videos según los datos Exif?

  4. ¿Cómo organizar/ordenar imágenes por datos de imagen Exif?

  5. Cómo iniciar y detener OSWatcher

Extraer y mostrar datos con awk

Manejo de datos faltantes en Python:causas y soluciones

Cómo cargar y descargar imágenes de la nube en OpenStack

Apache Cassandra:características e instalación

Cree una imagen de un servidor y restaure un servidor a partir de una imagen guardada

¿Obtener los campos de datos de WHOIS sin analizarlos?