![iPhone 照片下载工作流程仅适用于将新照片下载到 Mac](https://linux22.com/image/1243813/iPhone%20%E7%85%A7%E7%89%87%E4%B8%8B%E8%BD%BD%E5%B7%A5%E4%BD%9C%E6%B5%81%E7%A8%8B%E4%BB%85%E9%80%82%E7%94%A8%E4%BA%8E%E5%B0%86%E6%96%B0%E7%85%A7%E7%89%87%E4%B8%8B%E8%BD%BD%E5%88%B0%20Mac.png)
我发现我的 iPhone 照片下载工作流程有点麻烦。
以下是我的要求:
- 从我的 iPhone 相机胶卷下载照片和视频,但将照片保留在 iPhone 上
- 仅显示/下载新的自上次下载以来 iPhone 上的照片 + 视频
- 最好不要使用 iPhoto,因为它让我有点紧张
- 有全部我的 iPhone 拍摄的照片和视频可以在我的 iPhone 上查看
- 不惜一切代价维护所有 EXIF/GPS 元数据
目前,我使用常规文件夹结构 + Picasa 来保存我的所有数码照片,但对于我的 iPhone,我使用 iPhoto,因为当我从我的 iPhone 导入照片时,它会“仅显示新项目”
我发现我的 iPhone 上有 5000 多张照片和视频,插入后 iPhoto 通常需要一段时间(2-10 分钟)才能“找到”我的 iPhone。
理想情况下,我只想使用 OSX 内置的 ImageCapture.app 下载 iPhone 照片,但它会加载/显示所有照片,而不仅仅是自上次同步以来的新照片(就像 iPhoto 一样...)。然后我必须知道哪张是最后下载的 iPhone 照片,然后只下载较新的照片。
Picasa Import 还会加载/显示 iPhone 上的所有照片(由于需要从设备上加载太多图像,因此非常麻烦...)
我想了解是否有人有类似的工作流程/要求以及他们如何做到的。
我目前的计划是建立一个工作流程,在下载照片时将其从相机胶卷中删除,然后让 iTunes 根据文件夹将它们同步回相册 - 我甚至可以自动调整它们的大小,以便在 iPhone 上有较小的版本,而在我的 Mac 上有原始的全尺寸版本(从而节省以前的 iPhone 存储空间)
答案1
这是一个可行的解决方案,但可能不是最简单的。LifeHacker 最近发布了一篇文章,介绍了一个程序,该程序可让您的 iPhone 在 Finder 中显示为正常的已安装磁盘: http://lifehacker.com/5582529/phone-disk-mounts-iphone-ipod-touch-and-ipad-as-usb-disks-in-finder有问题的程序可以在这里找到:http://www.macroplant.com/phonedisk/目前作者免费提供该程序,他们真是太好了。我使用未越狱的 iPhone 3GS 尝试了该程序,我可以使用 Finder 成功浏览 iPhone 上的文件,包括图片和电影(尽管由于我的手机未越狱,因此某些系统文件仍处于隐藏状态)。图片和电影存储在 iPhone 上听起来很熟悉的 DCIM 文件夹中。
下一步是自动执行复制过程,以便您只复制新文件。虽然与 FAT32 格式的存储卡不同(根据我的经验),存档位设置在以前下载的文件/照片上,但似乎无法读取或设置已安装的 iPhone 磁盘上的等效标志。我不知道这是程序的限制还是手机本身的磁盘格式的限制(我猜是程序的限制)。
因此,我的建议是使用一个 bash 脚本,在手机上保存零字节文件,文件的时间戳指示照片上次同步的时间。然后,可以使用标准“find”终端命令使用此文件来仅复制比此文件更新的文件。下面是我为此目的编写的示例 bash 脚本,它对我来说很有效。将脚本作为文件保存到您的主目录中,假设名为“photoSync.sh”。然后(在安装 iphone 的情况下)从终端窗口将当前目录更改为 iPhone 根目录,然后运行脚本,将目标目录作为脚本的第一个参数。例如
cd /Volumes/MyIPhone\(Media\)/
sh ~/photoSync.sh ~/Pictures/iPhonePics
脚本如下:
#!/bin/bash
#test that script has been called correctly & from the right place
if [ ! -n "$1" ]
then
echo "Usage: $0 <destination dir>"
exit 1
fi
if [ ! -d $1 ]
then
echo "Destination directory does not exist or is not a directory"
exit 1
fi
if [ ! -d "DCIM" ]
then
echo "Current directory does not contain a DCIM folder. Script should be executed from mount directory of iPhone"
exit 1
fi
#tests passed, let's do the copying…
#check for last sync file…
if [ -e "com.jn.lastsynctime" ]
then
#we've synced before, just grab newer files
echo "Copying only files since last sync..."
find ./DCIM/* \( -name "*.JPG" -or -name "*.MOV" -or -name "*.PNG" \) -type f -newer com.jn.lastsynctime -exec cp -np {} $1 \; -print
#reset sync file
rm com.jn.lastsynctime
touch com.jn.lastsynctime
echo "Done"
else
#no sync file so copy all and set sync file
echo "No previous sync marker found, copying all files…"
find ./DCIM/* \( -name "*.JPG" -or -name "*.MOV" -or -name "*.PNG" \) -type f -exec cp -np {} $1 \; -print
touch com.jn.lastsynctime
echo "Done"
fi
exit 0