2

Aperture と Cocoa の開発者に質問です…</p>

Aperture と @Fraser Speirs の FlickrExport プラグインを使用して、写真を管理し、Flickr にアップロードしています。FlickrExport は、Flickr の写真 ID を使用して Aperture にカスタム タグを設定し (とりわけ)、どの画像がエクスポートされたかを確認できるようにします。また、写真を iPhone から電子メールで Flickr に直接投稿しています (EXIF データを完全に保持する唯一の方法を見つけました)。

Flickr ストリームをポーリングし、両方のスペースに存在するが、写真が Flickr にもアップロードされたことを示す Aperture カスタム タグがない画像を識別する Python スクリプトを作成しようとしています。Lion にアップグレードするまでは一般的にうまく機能していましたが、今ではいくつかの穴が見つかりました。

Flickr と Aperture のタイムゾーン処理はひどい/存在せず、EXIF タイムスタンプはタイムゾーンをキャプチャしません。画像のタイムスタンプには、「7 月 14 日午前 10 時 3 分」と表示されています。画像を A​​perture に読み込むときにコンピュータのシステム タイム ゾーンがボストン (米国/東部) に設定されている場合、Aperture はそれを として表示します7/14/11 10:03:00 AM EDT。まったく同じ画像を再度インポートしても、システムのタイム ゾーンがロサンゼルス (米国/太平洋) に設定されている場合、画像の日付は と表示され7/14/11 10:03:00 AM PDTます。これは紛らわしく、間違っています (タイムゾーンが明示されていない場合は、何も暗示されるべきではありません)。

では、ドメインを切り替えましょう。ScriptingBridge を使用して、Python 経由で Aperture とやり取りしています。ImageDate EXIF タグの値を取得したときに返される NSDate は、現在のシステム タイムゾーン (私の場合は米国/東部) に修正されます。

システムのタイムゾーンが米国/東部に設定されているときにインポートされた画像の場合:

>>> aperture = ScriptingBridge.SBApplication.applicationWithBundleIdentifier_("com.apple.Aperture")
>>> aperture.selection()[0].EXIFTags().objectWithName_("ImageDate").value().get()
2011-07-14 10:43:37 −0400

システムのタイムゾーンが米国/太平洋に設定されているときにインポートされた画像の場合:

>>> aperture.selection()[0].EXIFTags().objectWithName_("ImageDate").value().get()
2011-07-14 13:43:37 −0400

したがって、Aperture は画像のタイムゾーンが何であるかを認識していると考えているようですが (何も提供されていなくても)、ScriptingBridge を介してそれを返す方法はないようです。したがって、この NSDate オブジェクトが与えられた場合、元のタイムゾーンが何であるかわからない場合でも、元のタイムゾーンで日付と時刻を見つける方法はありますか? 代わりに、Aperture プラグイン API を介してこれを行うことはできますか?

[バッチ変更] コマンドを使用して時間調整を実行し、タイム ゾーンを設定するか、インポート ペインを介して同じ調整を行うと、2 つのカスタム タグが追加されることに注意してください:pictureTimeZoneNamecameraTimeZoneName. 存在する場合pictureTimeZoneName、「修正」なしでタイムスタンプを抽出できるはずです。しかし、ユーザーの介入をあまり必要としないソリューションを探しています。

4

0 に答える 0