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