Um banco de dados independentemente navegável de miniaturas grandes?

3

Eu pesquisei sobre isso por um tempo, mas sem sucesso. Eu tenho uma enorme quantidade de fotos armazenadas em várias mídias e copiadas em uma nuvem. O Shotwell gera miniaturas bem grandes, que são muito boas para se ter uma idéia do assunto e da qualidade de uma foto. As miniaturas são organizadas em grupos com base em registros de data e hora e pastas originais. Eu gostaria de poder navegar em uma coleção completa das miniaturas mesmo quando o programa não tem acesso a uma coleção completa das fotos reais (na verdade, eu não tenho uma coleção completa das fotos em um único dispositivo de armazenamento). Isso seria muito conveniente para mim por várias razões; Eu poderia navegar por eles a partir de vários PCs com pastas domésticas com nomes diferentes, eu poderia marcá-los de acordo com seu local de armazenamento, etc. Toda a coleção de miniaturas seria razoavelmente leve e eu poderia facilmente atualizá-la com o rsync. No entanto, se a Shotwell não encontrar as fotos reais, moverá automaticamente os polegares correspondentes sob o título de imagens ausentes e sua estrutura será perdida.

Eu tentei importar diretamente os polegares para o Shotwell, mas os timestamps e as tags originais desapareceram. Uma saída possível seria automatizar um processo de geração de miniatura e de geração de estrutura de pastas com base em registros de data e hora, mas antes de nos envolvermos nisso, achei melhor fazer uma pergunta aqui. Você conhece algum truque ou ajuste - ou pode recomendar algum programa específico - que me permita navegar em uma (enorme) coleção de miniaturas sem ter acesso aos originais? Tenho a sensação de que programas desse tipo devem estar em uso em algum lugar, mas, como eu disse, não consegui descobrir nenhum. Obrigado!

    
por archie 29.07.2014 / 12:45

2 respostas

0

O F-Spot é uma boa ferramenta para recuperação de imagens - embora talvez como o Shot bem.

Eu tenho uma versão do Ubuntu chamada Ubuntu Studio ao lado de uma distribuição normal do Ubuntu.

Com o Ubuntu Studio, você melhorou o catálogo de programas de imagem, som e vídeo, sem esquecer o que faz do Ubuntu um ótimo SO.

Olhe para essa opção - um dual-boot do Ubuntu e Ubuntu Studio (a menos que você queira instalar o Ubuntu Studio em um VirtualBox ou via Live-CD para testá-lo antes de instalar.

Você pode ser agradavelmente surpreendido.

Steve

    
por Steven Burwood 29.07.2014 / 15:07
1

Ok, resolvi o problema com um script que gera um banco de dados de miniaturas. O ImageMagick deve estar instalado para o script ser executado. O script requer dois argumentos, especificando um caminho de foto de origem e um caminho de destino. Ele busca de forma recursiva Source para arquivos JPG e gera miniaturas orientadas corretamente com largura e qualidade definidas pelo usuário (basta alterar o JPG para outra coisa, se desejar; ele manipula todos os formatos de arquivo manipulados pelo IM). Ele gera dois bancos de dados de miniaturas:

(1) db in Target: as miniaturas são organizadas em uma estrutura de pastas AAAA / MM / DD com base nas datas originais do EXIF.

(2) db no Target.Mirror: os polegares são organizados em uma estrutura de pastas que espelha precisamente a estrutura da origem.

Você pode alterar facilmente o script para gerar apenas um db. Eu colo aqui apenas o núcleo do script, deixando de lado a verificação e manipulação de caminhos, manipulação de argumentos, mensagens de eco, comentários, etc. Os caminhos de Origem, Destino e Espelho devem ter um argumento "/".

#!/bin/bash
# The following variables have to be initialized
# Source=<path_to_source/>
# Target=<path_to_target/>
# Mirror=<Target.mirror/>
# Width=<Thumbnail width> (experiment with 368, 416, 512, 1024)
# Quality=<Thumbnail quality> (0% to 100%: 95% is fine, try 75%)

   shopt -s globstar
   cd "$Source"
   for f in **
   do
      if ! ([[ -d "$f" ]]) && ([[ "$f" == *"JPG" ]] || [[ "$f" == *"jpg" ]])
      then
        echo -e "           ${\e[0;32m}" $Source$f${\e[0m}
        Date=$(identify -format "%[EXIF:DateTimeOriginal]" $f)
        FolderName="$Target${Date:0:4}/${Date:5:2}/${Date:8:2}"                     
        if ! [[ -d $FolderName ]]
        then
          mkdir -p "$FolderName"
        fi
        Filename="${f##*/}"
        convert "$Source$f" -thumbnail $Width -quality $Quality -auto-orient \
        "$FolderName/$Filename"
 # to preserve profiles such as EXIF data, replace line above with the following:
 #
 # convert "$Source$f" -resize $Width -quality $Quality -auto-orient
 # "$FolderName/$Filename"
 #
 # it takes a bit longer and thumbnails are bigger in size -- profiles use up
 # to 60K
        if ! [[ "${f%/*}" == "$f" ]]
        then
          if ! [[ -d "$Mirror""${f%/*}" ]]
          then
            mkdir -p "$Mirror${f%/*}"
          fi
        fi
        cp "$FolderName/$Filename" "$Mirror$f"
      fi
   done

O banco de dados é realmente leve (com largura definida para 416 e uma qualidade de 95%, o tamanho do banco de dados é de cerca de 1% do original); cópias dele podem ser facilmente guardadas em um notebook ou em um telefone Android, e Shotwell navega rapidamente. Se o script for executado novamente com uma nova fonte (mas com o mesmo destino e espelhamento), os dbs existentes serão atualizados. O que posso dizer - obrigado, Gnu e Linux!

    
por archie 31.07.2014 / 10:14