Imprimir automaticamente imagens com legendas adicionadas

1

Eu tenho muitas imagens digitalizadas e imagens / fotos com as quais estou trabalhando várias versões. Quando eu imprimi-los (usando vários programas), tudo o que eu get é a imagem e, muitas vezes, é difícil dizer qual imagem veio de qual arquivo. Isso é particularmente frustrante com minhas fotos (27K) quando tenho uma impressão e quero outra cópia e não consigo encontrá-la. (O fotos estão no KPhotoAlbum, então eu posso encontrar a minoria que eu tenho realmente marcado corretamente.)

O que eu gostaria é de um utilitário que imprima um monte de imagens (por exemplo, doit * .jpg) e incluir uma legenda automática (gerada pelo programa) (esperançosamente configurável) com algo como o caminho completo do arquivo nisso. O gnome-photo-printer seria perfeito se tivesse a opção de imprimir os caminhos completos das imagens com eles.

Eu preciso disso enquanto os projetos estão em andamento e para a limpeza depois. Isto não é para imagens "finais".

Seria legal (e econômico) se eu pudesse especificar o tamanho da impressão da imagem porque, muitas vezes, imagens menores de "miniaturas" podem ser suficientes para organizar / limpar e eles salvariam um monte de tempo, papel, e tinta / toner.

Eu sei que posso criar manualmente um documento com uma imagem incorporada em algo como escritor LO, mas isso seria totalmente manual (pelo menos com meu nível de especialização) e, portanto, muito lento.

Seria especialmente interessante ter a legenda "fora" da imagem para que ela não interferisse no conteúdo e, assim, eu pudesse controlar as cores de fundo e de fonte para facilitar a leitura.

Eu descobri (em princípio) como construir algo parecido com isso no bash usando convert algumas vezes junto com o composite (ambos do ImageMagick), mas é bastante complicado e eu estou esperando por algo mais simples.

    
por Joe 13.12.2012 / 00:01

3 respostas

2

Você pode ver o feh ( link ), que tem uma opção --caption-path:

   --caption-path PATH
        Path to directory containing image captions. This turns on caption
        viewing, and if captions are found in PATH, which is  relative  to
        the  directory  of each image, they are overlayed on the displayed
        image.  e.g  with  caption  path  "captions",  and  viewing  image
        images/foo.jpg,   caption  will  be  looked  for  as  "images/cap-
        tions/foo.jpg.txt"

Você pode até editar as legendas enquanto visualiza a imagem:

   c, C Caption entry mode. If --caption-path  has  been  specified,  then
        this  enables caption editing. The caption will turn yellow and be
        editable, hit enter to confirm and save the caption, or hit escape
        to cancel and revert the caption.

Infelizmente, você não pode escolher a cor, a posição ou o tamanho da legenda, por isso é de uso limitado.

EDIT: meus comentários foram no feh 1.3.4. A versão mais recente tem opções adicionais para legendas.

Adicionando referência à minha própria pergunta: Visualizador de imagens semelhante a xv que me permite anotar / marcar imagens?

    
por 14.05.2014 / 15:48
1

Talvez você possa usar o seguinte comando como ponto de partida

find -name "test.png" -exec mogrify -draw "text 0,0 '$(pwd)/{}'" -gravity SouthWest "{}" \;

Primeiro, procure por arquivos específicos (aqui test.png) e, em seguida, execute um comando mogrify (parte do ImageMagick) para colocar o texto nele. Isso colocará o texto no canto inferior esquerdo da imagem. Você provavelmente também pode colocá-lo fora da figura, mas talvez alguém possa dar uma dica para identificar isso.

Você também pode colocar a saída de identify dentro da imagem, então você deve fazer algo assim:

find -name "test.png" -exec bash -c 'mogrify -draw "text 0,0 \"$0$(identify $1)\"" -gravity SouthWest $1' $(pwd) "{}" \;

Em que -exec executa bash , o que também leva argumentos.

Editar

Depois de reler sua postagem, percebo que respondi apenas uma parte de suas perguntas. O que há de errado com o loop nos arquivos e a execução de alguns comandos em um loop? Algo como

for picture in $(find -name "*.jpg")
do
    label=$(identify $picture)
    mogrify ... $label ..
    print $picture
done
    
por 13.12.2012 / 08:44
1

Uma boa abordagem seria gerar um documento em alguma linguagem de marcação que inclua as imagens como arquivos externos e contenha as legendas.

HTML é uma linguagem de marcação simples. Por outro lado, pode ser difícil conseguir imprimir da maneira que você gosta: o HTML foi projetado para exibição flexível em navegadores da Web, não para impressão bonita. Aqui está um script de shell de prova de conceito para gerar um arquivo HTML contendo imagens e suas descrições.

#!/bin/bash
cat <<'EOF'
<html>
<head><title>My pictures</title></head>
<body>
EOF
for file_name; do
  file_name=${file_name//\&/'&amp;'}
  file_name=${file_name//\"/'&quot;'}
  file_name=${file_name//\</'&lt;'}
  file_name=${file_name//\>/'&gt;'}
  echo "<p><img src=\"$file_name\"><br>$file_name"
done
cat <<'EOF'
</body>
</html>
EOF

Você pode querer analisar metadados EXIF e imprimir informações interessantes, como a data e o local, se houver. Temos alguns tópicos que você pode consultar para sugestões de programa, exemplos de código e inspiração: Imprime valores específicos de dados de imagem Exif com exiv2 , Como posso renomear fotos, dados EXIF? , Filtragem de script de shell por meio de atributos de arquivos jpg

Se você quiser mais controle sobre a aparência do documento impresso, poderá gerar uma fonte LaTeX. LaTeX permite produzir documentos bonitos facilmente, mas somente após um período inicial de aprendizado. O pacote galeria de imagens foi projetado para arranjos simples de galeria; veja o arquivo de exemplo para saber como especificar as imagens a serem incluídas. Para gerar um PDF da maneira mais fácil, coloque o arquivo image-gallery.cls e seu arquivo my-gallery.tex no diretório atual (junto com o arquivo .txt contendo a lista de imagens) e execute pdflatex my-gallery .

    
por 14.12.2012 / 02:28