จะแทนที่รูปภาพใน iPhoto ด้วยรุ่นที่มีคุณภาพสูงขึ้นได้อย่างไร


2

ฉันใช้ Aperture สำหรับการแก้ไขและประมวลผลภาพ แต่ชอบ iPhoto เพื่อเก็บแกลเลอรี่รูปภาพของฉัน เป็นเวลานานฉันใช้เครื่องมือใน iPhoto เพื่อ "นำเข้าจากห้องสมุดรู" สิ่งที่ฉันไม่รู้ก็คือการนำเข้าภาพตัวอย่างเท่านั้นซึ่งมีความละเอียดหนึ่งในสี่และบีบอัดไม่ดี ตอนนี้ฉันมีอัลบั้มสองสามปีที่มีข้อมูลเมตามากมาย แต่คุณภาพของภาพแย่ ฉันต้องการแทนที่รูปภาพด้วยเวอร์ชันที่มีคุณภาพสูงกว่าจาก Aperture โดยไม่สูญเสียข้อมูลเมตาทั้งหมด (แท็กคำอธิบายใบหน้า ฯลฯ ) วิธีที่ง่ายที่สุดในการทำเช่นนี้คืออะไร?

คำถามที่เกี่ยวข้อง: เป็นไปได้หรือไม่ที่จะเข้าถึง / เปลี่ยนข้อมูลภาพใน iPhoto ด้วย AppleScript? ฉันสามารถเขียนสคริปต์เพื่อจับคู่ภาพและแทนที่พวกเขาหากมีกลไกในการทำเช่นนั้น

คำตอบ:


2

นี่คือวิธีที่ฉันแก้ปัญหานี้ในที่สุด ใช้เวลาไม่กี่ขั้นตอนและต้องมีสคริปต์และแฮ็กบรรทัดคำสั่ง

  1. ส่งออกรูปภาพที่คุณต้องการอัปเดตจาก Aperture ไปยังโฟลเดอร์ ~/Pictures/Updates
  2. เปิดอัลบั้มใน iPhoto
  3. ใช้ AppleScript นี้เพื่อรับรายการชื่อไฟล์สำหรับภาพต้นแบบ

    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. ใช้โปรแกรมแก้ไขข้อความใด ๆ บันทึกสคริปต์ด้านล่างเพื่อ update_pics.sh และทำเครื่องหมายว่าปฏิบัติการได้ ( chmod 755 update_pics.sh บนบรรทัดคำสั่ง)

    #! /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. ในการใช้สคริปต์ให้ระบุตำแหน่งของรูปภาพที่อัปเดตโฟลเดอร์ที่จะทำการสำรองข้อมูล (ฉันหวาดระแวงกับการสูญเสียข้อมูล) จากนั้นไปที่ไฟล์ที่สร้างขึ้นก่อน ตัวอย่างเช่น:

    update_pics.sh Updates/ Backups/ < album.txt
    
  6. หากคุณยังไม่ได้ปิด iPhoto จากนั้นรีสตาร์ทในขณะที่กด Option และ Command ค้างไว้ ที่ควรให้กล่องโต้ตอบเพื่อสร้าง iPhoto ขึ้นมาใหม่ คุณควรจะสร้างรูปขนาดย่อใหม่เท่านั้นแม้ว่าคุณอาจต้องการสร้างทุกอย่างอื่น ข้อมูลเพิ่มเติมเกี่ยวกับการสร้าง iPhoto Library ใหม่จาก Apple

iPhoto อาจใช้เวลานานในการสร้างภาพขนาดย่อเนื่องจากจะทำซ้ำ ทั้งหมด ของพวกเขา. คุณมีจำนวนอัลบั้มที่ต้องทำน่าจะเป็นการดีที่สุดที่จะอัปเดตรูปภาพก่อนอัลบั้มต่ออัลบั้มแล้วสร้างห้องสมุดใหม่ นั่นคือสิ่งที่ฉันทำและมันใช้งานได้ดี

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.