Come sostituire le immagini in iPhoto con versioni di qualità superiore?

2

Uso Aperture per l'elaborazione e l'elaborazione di foto, ma preferisco iPhoto per conservare una galleria delle mie immagini. Per molto tempo ho utilizzato gli strumenti integrati in iPhoto per "Importa da Aperture Library". Quello che non sapevo era che questo importa solo l'immagine di anteprima, che ha una risoluzione di un quarto e mal compresso. Ora ho un paio di anni di album con molti metadati, ma qualità di immagine scadente. Mi piacerebbe sostituire le immagini con versioni di qualità superiore da Aperture, senza perdere tutti i metadati (tag, descrizioni, volti, ecc.). Qual è il modo più semplice per farlo?

Domanda correlata: è possibile accedere / modificare i dati dell'immagine in iPhoto con AppleScript? Posso scrivere uno script per abbinare le immagini e sostituirle, se esiste un meccanismo per farlo.

    
posta IndigoFire 30.10.2012 - 15:51
fonte

1 risposta

2

Ecco come alla fine ho risolto questo problema. Ci sono voluti alcuni passaggi, e richiede alcuni script e un hackery da riga di comando, ma ha funzionato.

  1. Esporta le immagini che desideri aggiornare da Aperture in una cartella, ad esempio ~/Pictures/Updates
  2. Apri l'album in iPhoto
  3. Usa questo AppleScript per ottenere un elenco di nomi di file per le immagini principali

    set output_filename to "/Users/user/Pictures/album.txt"
    
    tell application "iPhoto"
        set pics to photos in current album
        do shell script "echo \"# Current album contents\" > " & output_filename
        repeat with pic in pics
            set picpath to image path of pic
            do shell script "echo " & picpath & " >> " & output_filename
        end repeat
    end tell
    
  4. Usando un qualsiasi editor di testo, salva lo script qui sotto a update_pics.sh e contrassegnalo come eseguibile ( chmod 755 update_pics.sh sulla riga di comando)

    #! /bin/bash
    # a quick script to parse in a series of filenames, and update them
    
    input_folder="$1"
    backup_folder="$2"
    
    if [ "$#" -ne 2 ]; then
            echo "Usage: $0 [folder with new images] [folder for backups]"
            exit 0
    fi
    
    if [ ! -d "$input_folder" ]; then
            echo "Can't read input follder $input_folder"
            exit -1
    fi
    
    if [ ! -d "$backup_folder" ]; then
            mkdir -p "$backup_folder"
    fi
    
    if [ ! -d "$backup_folder" -o ! -w "$backup_folder" ]; then
            echo "Can't write to backup folder $backup_folder"
            exit -1
    fi
    
    while read line; do
    
            # skip empty lines or comments
            [ -z "$line" -o "${line:0:1}" = "#" ] && continue
    
            if [ -f "$line" ]; then
                    filename='basename "$line"'
                    input_file="$input_folder/$filename"
                    cp "$line" "$backup_folder"
                    if [ -f "$input_file" ]; then
                            echo "Replacing $filename"
                            cp "$input_file" "$line"
                    else
                            echo "Could not find input file $input_file"
                    fi
            else
                    echo "$line does not exist"
            fi
    done
    
  5. Per utilizzare lo script, assegnagli la posizione delle immagini aggiornate, una cartella in cui inserire i backup (sono paranoico di perdere dati) e poi inserisci il pipe nel file generato in precedenza. Ad esempio:

    update_pics.sh Updates/ Backups/ < album.txt
    
  6. Se non lo hai già fatto, chiudi iPhoto. Quindi riavvialo mentre tieni premuti Opzione e Comando. Questo dovrebbe darti una finestra di dialogo per ricostruire iPhoto. Dovresti solo ricostruire le miniature, anche se potresti voler ricostruire tutto il resto. Ulteriori informazioni sulla ricostruzione della libreria iPhoto da Apple

Probabilmente occorrerà molto tempo per ricostruire le anteprime iPhoto, poiché riporterà tutte di esse. Hai un numero di album da fare, probabilmente è meglio aggiornare prima le immagini, album per album, e quindi ricostruire la libreria. Questo è quello che ho fatto, e ha funzionato molto bene.

    
risposta data 26.11.2012 - 05:10
fonte

Leggi altre domande sui tag