====== 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 300x300 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 1600x1150 y queremos hacerla de 1600x1200 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
{{:informatica:linux:canvas.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