Table of Contents
Imagemagick
imagemagick
Es una herramienta potentísima que nos permite, por ejemplo, combinar dos imágenes en una:
1. Instalarlo
aptitude update && aptitude install imagemagick
Componer un .pdf a partir de un texto y dos imágenes
1. Crear el siguiente guión:
nano /tmp/convertir.sh
Con el siguiente contenido:
#!/bin/bash Salida="salida.pdf" Img1="cabecera.png" Img2="texto.gif" Img3="pie.jpg" Texto=" Frase muy larga que no va caber en una linea. No hay que preocuparse, imagemagick la cortará. Frase 2 Frase 3 etc... " #Texto_formateado=${Texto// /\ } # NOTA: no sé por qué 1 unidad = 1.39 píxeles # Esto es un DINA4 (826x1169px) Alto="841.01" Ancho="594.24" ############### # Creo la imagen a partir de un texto #convert -background white -fill black -pointsize 20 -size 520x caption:'123456789012345678901234567890123456789012345678901234567890' $Img2 Cadena1="\'"$Texto"\'" convert -background white -fill black -pointsize 20 -size 520x caption:"$Texto" $Img2 Cadena2=$Ancho"x"$Alto convert -size $Cadena2 xc:white $Salida composite -geometry +10+10 $Img1 $Salida $Salida composite -geometry +10+160 $Img2 $Salida $Salida composite -geometry +10+600 $Img3 $Salida $Salida
2. Grabar y salir
3. Darle permisos de ejecución:
chmod +x /tmp/convertir.sh
4. Dejar en /tmp los siguientes archivos:
Ruta completa del archivo | Ancho recomendado (píxeles) | Alto recomendado (píxeles) |
---|---|---|
/tmp/cabecera.png | 70 | 560 |
/tmp/pie.jpg | 70 | 560 |
5. Ejecutar el guión (no requiere ser root):
./tmp/convertir.sh
¿Qué hace? Compone un .pdf DINA4 con, de arriba abjo:
- El membrete
- El contenido del texto
- El pie
En el ejemplo usamos hasta 4 formatos distintos (.pdf .png .gif y .jpg) para mostrar solo una pequeña parte del potencial de esta herramienta.
Reducir porcentualmente el tamaño
#!/bin/bash Dir_origen="/tmp/dir_con_fotos" Dir_destino=$Dir_origen"/peq" Extension="jpg" Porcentaje="16%" mkdir $Dir_destino for Ruta_archivo in "$Dir_origen"/*.$Extension do Archivo=${Ruta_archivo##*/} convert $Ruta_archivo -resize $Porcentaje $Dir_destino"/"$Archivo done
Juntar 2 .pdf apaisados en 1 DINA4 n-s
#!/bin/bash Salida="salida.pdf" Img1="n.pdf" Img3="s.pdf" # NOTA: no sé por qué 1 unidad = 1.39 píxeles # Esto es un DINA4 (826x1169px) Alto="841.01" Ancho="594.24" ############### Cadena2=$Ancho"x"$Alto convert -size $Cadena2 xc:white $Salida # Reduzco tamanyo convert $Img1 -resize 70% "peq_"$Img1 convert $Img3 -resize 70% "peq_"$Img3 composite -geometry +0+10 "peq_"$Img1 $Salida $Salida composite -geometry +0+450 "peq_"$Img3 $Salida $Salida
Cambiar tamaño lienzo (canvas)
Corta una imagen desde los pixeles que quieras.
# convert imagen.png -crop 1982x1401+1982+0 crop.png
Otra forma que a veces cambia tamaño imagen (por investigar) Recortar una imagen a 300×300 cortando la parte de abajo:
# convert entrada.png -resize 300x300^ -gravity North -extent 300x300 salida.png
Gravity:
- Center
- East
- North
- NorthEast
- Northwest
- South
- SouthEast
- SouthWest
- West
Para ampliar el lienzo, tenemos una imagen de 1600×1150 y queremos hacerla de 1600×1200 para poder hacer un vídeo. Añadimos por abajo un trozo azul para que se vea
convert jur.jpg -resize 1600x1200 -background Blue -gravity North -extent 1600x1200 jur2.jpg
Girar imágen
Gira la imagen 40 grados
# convert inicio.png -rotate 40 final.png
Varios
* Mitad superior de la imagen
convert in.pnm -crop 100%x+50%+0+0 out.pnm
* Mitad inferior
convert in.pnm -crop 100%x100%+0+2350 out.pnm