macOS Sequoia - 写真のサムネイル画面で作成日表示が正しくない
Mac OS をSequoiaに変えてから起こったことです.
* タイトルを変更しました。 Apple Inc.
Mac mini, macOS 15.0
AppleサポートAppおよびYouTubeチャンネルのお知らせ
* iOS向けAppleサポートAppのバージョン5.6.1が公開されました。
* YouTube - Apple Japanチャンネルで有用なヒントや使い方を配信中です。
* iOS向けAppleサポートAppのバージョン5.6.1が公開されました。
* YouTube - Apple Japanチャンネルで有用なヒントや使い方を配信中です。
コミュニティでの投票方法と通知設定
コミュニティでの投票方法や通知の設定方法に関する記事を公開しました。
コミュニティでの投票方法や通知の設定方法に関する記事を公開しました。
Apple Account(Apple ID)の不正利用を確認する方法
Apple Accountに関するよくある質問についてはこちらのページを、また不正利用を確認する方法についてはこちらのドキュメントをご参照ください。
Apple Accountに関するよくある質問についてはこちらのページを、また不正利用を確認する方法についてはこちらのドキュメントをご参照ください。
Mac OS をSequoiaに変えてから起こったことです.
* タイトルを変更しました。 Apple Inc.
Mac mini, macOS 15.0
例えば exiftool コマンドにより Date/Time Original を取得する AppleScript はこんな感じ。
on run {argv}
repeat with f in argv
set fpath to f's POSIX path
set DateTimeOriginal to my func(fpath) # DateTimeOriginal : %Y-%m-%d %H:%M:%S
end repeat
end run
on func(fpath)
do shell script "/usr/local/bin/exiftool -s3 -DateTimeOriginal -d '%Y-%m-%d %H:%M:%S' " & fpath's quoted form
end func
exiftool が /usr/local/bin に入っていることを前提としてます。別の場所なら適宜変更してください。同コマンドは -d オプションで日時の書式を指定できるので、好きなように変更してください。あと、Date/Time Original 以外の日時を求めたい場合も適宜変更。
で、この AppleScript によりファイル名を変更?すれば良いと思います。リネームのルールを明示すれば誰か答えてくれるかもしれません。
コードをベタベタ貼るもどうかと思いましたが、需要が多そうなのでポストしますね。
以下は EXIF 情報の DataTimeOriginal を取得して、ファイルの作成日と変更日をセットする AppleScript です。
exiftool コマンドを使わない方法です。
作り方: スクリプトエディタに下記のコードをコピペして保存
使い方: スクリプトエディタから実行
# コード
use AppleScript version "2.7"
use scripting additions
use framework "Cocoa"
property OSX : current application
property nil : missing value
on run
set uti to "public.jpeg"
set msg to "JPEG ファイルを選択してください (複数選択できます)"
set args to choose file of type uti with prompt msg with multiple selections allowed
repeat with f in args
set filemanager to OSX's NSFileManager's defaultManager()
set fpath to f's POSIX path
set odate to get_odate(fpath)
if odate is not nil then
set new_attrs to {NSFileCreationDate:odate, NSFileModificationDate:odate}
set {res, err} to (filemanager's setAttributes:new_attrs ofItemAtPath:fpath |error|:(reference))
if not res then
error err's localizedDescription() as text
end if
end if
end repeat
end run
on get_odate(fpath)
set odate to nil
set rep to OSX's NSBitmapImageRep's imageRepWithContentsOfFile:fpath
if rep is not nil then
set exif to rep's valueForProperty:"NSImageEXIFData"
if exif is not nil then
set odate to exif's objectForKey:"DateTimeOriginal"
end if
end if
if odate is not nil then
set df to OSX's NSDateFormatter's alloc()'s init()
set df's locale to OSX's NSLocale's localeWithLocaleIdentifier:"en_US_POSIX"
set df's dateFormat to "yyyy:MM:dd HH:mm:ss"
set odate to (df's dateFromString:odate)
end if
return odate
end get_odate
>作成日表示が正しくない
denk162さんの場合は、作成日にどのような日付が表示されているのでしょうか?
以下は先日(9/24)私がiPhone 15で撮影したものをMacの写真アプリに取り込み(iCloud経由)、
その写真をMacのピクチャーフォルダに先ほど(9/30)コピーしたものです。
macOS Sequoia 15.0のFinderでカラム表示してみると、「作成日」には「コンテンツの作成日」(=撮影日?)と同じ日時が表示されています。
Finder Window でColumn形式を用いると,指定したFileのサムネイルが最も右の欄に現れると思いますが,この欄の作成日が正しく表示されません(Olympus製のOM-Dを使用しています).ちなみに,exiftoolを用いると,オリジナルデートが正しく入っています.Automatorを用いて,File Nameの一括変換,整理をするのに大きな支障となります.対処方法がありましたら,お教えいただければ,助かります.
>Sequoia以前のOSで正しく表示
それはあなたの思い込みでは?
ずっと以前から類似の書き込みは多いです。
ファインダーで表示するのはあくまでもファイルとしての作成・変更日時。os(macOSに限りません)が管理すべきはファイルシステムでの作成・変更日時だからです。
写真の撮影日はexif情報に書き込まれてますので、そちらを参照すべきです。カメラで写真を撮り、それをメモリーに記録すればそれが、そのメモリーカードでの作成日になります。その場合はこの日時は撮影日と一致します。しかし、それをmacなど別のパソコンにコピーすれば、その時がパソコンでのその写真ファイルの作成日で、撮影日とは異なってきます。でもexif情報には正しい撮影日時が記録されてます。
>「写真を管理しているアプリ」が関係
アプリというよりはシステムに関係してるのでは?
上げられた最初の例では、iPhoneで撮影して、写真はicloudに同期してるか何かなのでは?その場合は、最初からicloudの写真システムに取り込まれてるから、iphoneで見ようが、macで見ようが作成日(最初にicloud写真システムに取り込まれた日)と撮影日が一致するのでは?
lightroomに取り込んだ場合は、書き出しの仕方で変わるということですが、特別なことをしなければ、普通のosがファイルを管理するときの振る舞いと思います。
>作成日(最初にicloud写真システムに取り込まれた日)と撮影日が一致するのでは?
なるほど、そうかもしれません。
>特別なことをしなければ、普通のosがファイルを管理するときの振る舞い
Lightroomで書き出しした場合についてですが、
形式変換して書き出した場合は新しいファイルが作成されるのでFinderで表示される「作成日」が書き出し日時になるのですが、
オリジナルで書き出した場合はFinderで表示される「作成日」は変更されません。(Lightroomが読み込んだ日時のまま)
前者は新規ファイル作成、後者はファイルコピーなのでこれがOSの仕様によるふるまいということになるのでしょう。
色々のご意見ありがとうございました.私が考えておりました作成日(時刻)に最も近いのは,pajerow氏の引用されている,コンテンツの作成日(時刻)です.これらは全ての引用について,不変です.この時刻は,光がメモリーカードに記録された時刻として良いと思われます.これが,OS Sequoia,15では反映されないことが問題なのです.私は,Automatorでこの値を用いていて,OSを変えた途端,値が得られなくなってしまいました.どなたか,この値の簡単な求め方をお教えくだされば,ありがたいと思っております.
追記)
上記と同じ写真をLightroomから書き出してみました。
この場合、「作成日」には書き出した日時が設定され「コンテンツの作成日」(=撮影日?)と同じ日時にはなりません。
このとおり、Finderによる仕様ではなく書き出したアプリによる違いではないでしょうか?
さらに追記)
同じLightroomによる書き出しでも「オリジナルで書き出し」すると状況は変わってきます。
「作成日」は「Lightroomに取り込まれた日時」になります。
いずれにしても、Finderではなく「写真を管理しているアプリ」が関係していることに違いはないでしょう。
状況が理解出来ません。 何のサムネールを何処で、何のアプリで、表示しているのでしょうか?
>この欄の作成日が正しく表示されません(Olympus製のOM-Dを使用しています).
作成日は、ファイルをマックにコピーした日時になるのでは。
Sequoia以前のOSで正しく表示されていたのはなぜでしょうか.
推測ですが、撮影日をMac上の作成日にするのは如何なものかと言う意見が多かったとか…?
フィードバックをすると改善されるかも。
Appleがやらかしたと判断すれば15.*で改善されるかもしれませんが。
はにさんのコメントとカブりますが、ファイルの作成日はファイルシステム上の作成日であって、コンテンツの作成日とは違うものです。一致する場合もあれば一致しない場合もあります。同じでないから間違ってるということにはなりません。「作成日」がない OS だってあります。
Automator により何かをする際に問題となるということであれば、ワークフローを変更することで対処してください。
macOS Sequoia - 写真のサムネイル画面で作成日表示が正しくない