Procesamiento por lotes de imágenes tif? Convertir .tif a .jpeg

41

Estoy tratando de convertir en masa un puñado de .tifarchivos. Encontré que phatch podría parecer un buen candidato, pero estoy ejecutando Ubuntu 11.04. Parece que no tienen una .debpara mi versión.

Cualquiera tiene alguna alternativa para phatch o cualquier otra recomendación para convertir rápidamente tifa jpegarchivos por lotes .

Estoy buscando una solución que no sea Photoshop (ala Wine).

chrisjlee
fuente

Respuestas:

75

Fácil. Instala imagemagick :

sudo apt-get install imagemagick

Su uso más simple es:

convert File.tif File.jpg

Es inteligente y se adapta a su extensión de archivo.

Ahora, para hacer conversiones por lotes, usaremos un bucle.

cd en el directorio donde están tus archivos tif.

luego:

for f in *.tif; do  echo "Converting $f"; convert "$f"  "$(basename "$f" .tif).jpg"; done

Lea también como:

for f in *.tif
do  
    echo "Converting $f" 
    convert "$f"  "$(basename "$f" .tif).jpg" 
done

¡Deberias hacer eso!

Además, una vez que convierta todos los archivos y verifique la integridad del nuevo jpg, simplemente ejecute rm *.tifen ese directorio para eliminar todos sus archivos .tif antiguos. Sin embargo, tenga cuidado con los asteriscos, no agregue un espacio después del *, o eliminará todos sus archivos en el directorio.

Consejo: si tiene una carpeta con subcarpetas que contiene estas imágenes. Puede usar esto para bucle para encontrar todos los archivos .TIF dentro de esa carpeta:

for f in $(find -name *.tif); do ...; done
Mate
fuente
¿Se supone que esto imprima Converting filename.tifo Converting filename?
nitrato de sodio
1
@sodiumnitrate dirá "Converting filename.tif". el basenamecomando toma 2 argumentos, por ejemplo basename file.tif .tif, devolverá "archivo" quitando la extensión .tif. Si lo desea, puede modificar el bucle para decir "Convertir filename.tif a filename.jpg" con el mismo comando basename.
Matt
findEl primer argumento debería ser la ruta, por lo que la última línea debería ser for f in $(find . -name *.tif); do ...; done(ya que cdeditamos en el directorio antes). Intenté editar la respuesta de @ Matt, pero las ediciones deben tener al menos 6 caracteres por alguna razón.
mrtnmgs
Gracias ..................................... trabajando
balaji
22

Encontré esta pregunta mientras intentaba hacerlo yo mismo, para futuras referencias también puede hacerlo así:

convert *.tiff -set filename: "%t" %[filename:].jpg

o ponerlo en un subdirectorio

mkdir jpg
convert *.tiff -set filename: "%t" jpg/%[filename:].jpg
Robert Bak
fuente
1
Yay para el manejo de nombre de archivo incorporado.
beerbajay
Esto funcionó muy bien para mí con archivos png también. Sin embargo, el comportamiento de los pdf fue diferente.
wdkrnls
Me encantaría ver que esto funcionara, sin embargo, esto informó un error de bus en ImageMagick 6.6.9-7 2014-03-06 Q16 (OpenMP) en Ubuntu 64. La respuesta aceptada funciona bien.
TFuto
Una advertencia: esto me congeló todo el sistema (GNOME 3) y tuve que apagar la computadora
0__
2

Imagemagick debería poder convertirlos. Es un paquete de programas de línea de comandos, si está de acuerdo con eso.

Parte de eso es convertir -

hombre convertido:

convertir: convierte entre formatos de imagen, así como cambia el tamaño de una imagen, desenfoca, recorta, despeja, difumina, dibuja, voltea, une, vuelve a muestrear y mucho más.

marto
fuente
1
La respuesta de Matt es en realidad mucho más útil
marto
1
Sip. Estás ahí.
chrisjlee
1

Si prefiere una aplicación GUI, puede instalar Phatch a través de los repositorios normales. Simplemente abra el Centro de software de Ubuntu y búsquelo. Ya no estoy en 11.04 pero lo tenía instalado en ese entonces.

Que hacer
fuente
1

Las respuestas anteriores se utilizan *.tifpara la selección tif, pero esto devolverá un error si tiene demasiados archivos en su directorio de trabajo actual. Una solución simple es usar un script de Python para convertir cada archivo en el cwd:

import glob, os

for c, i in enumerate(glob.glob('ecco_images/*')):
  print(' * converting', i)
  os.system('convert ' + i + ' ' + i.replace('.TIF','.jpg'))
duhaime
fuente
for f in *.tifno error, pero lo convert *.tifhará.
muru
Ah, gracias @muru! Pensé que la expansión * sería la misma en el nivel del sistema operativo, pero estoy feliz de que me corrijan.
duhaime
0

Me gustaría agregar a la respuesta de @ Matt que si desea que los archivos se guarden en las subcarpetas, puede hacer lo siguiente:

find -name *.tif | while read f; do echo "Converting $f"; convert "$f"  "${f%.*}".jpg; done

Esto también maneja el problema si su ruta / nombre de archivo tiene espacios

JTIM
fuente
0

La solución GUI de GIMP utilizando un complemento de proceso por lotes

Funciona en Ubuntu 18.04 usando GIMP 2.8


Ventana de diálogo de entrada del procesador por lotes

Ventana de diálogo de entrada de proceso por lotes


Ventana de diálogo de salida del procesador por lotes

Ventana de diálogo de salida del procesador por lotes


Instrucciones de instalación

1 - Descargue el archivo de complemento actual de DBP - la página de inicio del Procesador por lotes de David en su escritorio. Para Ubuntu 18.04 arruinando Gimp 2.8, el archivo que funcionó para mí fue dbpSrc-1-1-9.tgz .

2 - Toma algunos archivos de desarrollo GIMP:

sudo apt-get install libgimp2.0-dev gcc cpp g++

3 - Cambie al directorio de código fuente del sistema:

cd /usr/src/

4 - Extraiga el complemento de su escritorio a su propio directorio de código fuente. Reemplace [nombre de usuario] con su nombre de usuario actual y use el nombre de archivo que descargó anteriormente en el paso 1:

sudo tar -xvzf /home/[username]/Desktop/dbpSrc-1-1-9.tgz

5 - Cambie al directorio de código fuente del complemento:

cd dbp-1.1.9

6 - Compila el complemento:

sudo make

7 - Instala el complemento:

sudo make install

8 - Inicie GIMP y encontrará el complemento en Menú-> Filtros-> Proceso por lotes.

Proceso por lotes de GIMP. Ruta del menú

SunnyDaze
fuente