respuesta de Eric L. es correcta - 1 de mí por ello! - pero -annotate
no le da mucho control sobre la apariencia del texto.
Si busca la belleza, busque algo que use -composite
. Puede usar un comando IM para construir primero una imagen de superposición (que usa un fondo semitransparente) y luego superponerla sobre la imagen original.
A continuación, se muestra un ejemplo de cómo hacerlo con -composite
en lugar de -annotate
, utilizando un enfoque basado en secuencias de comandos que procesa cada archivo PNG en el directorio actual. Que éste se adapta incluso de forma automática el tamaño de fuente y encaja en el "ancho * 90%" disponible - es un script Bash (véanse los comentarios de Win equivalente):
for img in *.png; do
width=$(identify -format %W ${img})
width=$((${width} * 9/10))
convert \
-background '#0008' \
-gravity center \
-fill white \
-size ${width}x100 \
caption:"${img}" \
"${img}" \
+swap \
-gravity south \
-composite \
"with-caption-${img}"
done
Una ilustración de un ejemplo original y el la salida respectiva está debajo:
!
Aquí es un comando que utiliza -annotate
, tratando de establecer un par de cosas más allá de los parámetros por defecto:
for img in so#12231624-right.png; do
convert \
"${img}" \
-fill red \
-undercolor '#0008' \
-pointsize 24 \
-gravity south \
-annotate +0+5 "${img}" \
"with-annotate-${img}"
done
¿Es eso para la línea de comando bash? – Serguzest
Esto es para Bash, sí. En Windows/DOS, la sintaxis sería algo así como 'para% i in (* .png) do convert .... '. No hay un '* done *' final aquí, ni un punto y coma después de la parte 'for'. –
Gracias, en realidad lo resolví bash commandline que existe en mis ventanas debido a Git. – Serguzest