Na verdade, você pode usar o ImageMagick para escrever texto em uma imagem. Use o utilitário convert
para transformar uma imagem em um novo arquivo (ou mogrify
para transformar um arquivo em lugar, mas eu não recomendo, porque se você cometer um erro, você perde o original). Você especifica o texto com a opção -annotate
, que pode conter as sequências de escape , como %t
, para o nome do arquivo sem diretório ou extensão. Existem muitas outras opções que permitem controlar a posição, tamanho, fonte, cor, etc.
Suponha que seus arquivos estejam em um subdiretório chamado original
do diretório atual. Crie um diretório labeled
:
mkdir labeled
Para converter as imagens, chame convert
da seguinte forma:
convert original/001abcd.jpg -fill green -pointsize 20 -annotate +0+0 %t -gravity north-east labeled/001abcd.jpg
O primeiro parâmetro após -annotate
é a geometria, que indica a localização do texto. +0+0
é o canto; o -gravity north-east
diz que esse é o canto superior direito. O segundo parâmetro é o texto, que aqui é apenas a seqüência de escape que diz "use o nome do arquivo".
Para converter todos os arquivos .jpg
no diretório, escreva um loop. O padrão curinga *.jpg
representa a lista de .jpg
arquivos, para esse loop atua em todos os arquivos .jpg
no diretório original
. No corpo do loop, "$x"
refere-se ao nome do arquivo com a parte do diretório; "${x##*/}"
refere-se ao nome do arquivo sem a parte do diretório.
for x in original/*.jpg; do
convert "$x" original/001abcd.jpg -fill green -pointsize 20 -annotate +0+0 %t -gravity north-east "labeled/${x##*/}"
done