- ベストアンサー
iphotoのライブラリー内にオリジナルの写真が見つかりません。(!マ
iphotoのライブラリー内にオリジナルの写真が見つかりません。(!マーク) ホームページに書いてある方法は試しました。 1,サムネールだけ残っているのはどういう操作をしたからでしょうか? アルバム内でdeleteしても大丈夫ですか? 2,オリジナルの写真がないサムネールをすべて探すには、一括で検索できますか? よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> また、読み込めない写真が何枚もあり、はい?かOKを30回くらいクリックしました。 オリジナルの画像ファイルが存在するが、読み込めない。ということは、そのファイルは壊れていると判断していいでしょう。 > これはどういうコトなんでしょうか? 「そういうことです」と答えるしかありません。No.1で回答したとおり、あなたのMacintoshには、なんらかの事故が起きています。たとえば、事故を起こした自動車が、原因がわからないまま事故後まっすぐ走らなくなったとしても、疑問に感じることはありませんし、疑問を持つほうがおかしいです。それと同じ感覚で対応するべきです。 No.1で紹介したAppleScriptで、「!」マークになる写真を、iPhoto読み込み時のオリジナルファイルを、再読み込みすることで、復活させようとしましたが、それはむだなことがわかったので、別のことを目的としたAppleScriptを考えてみました。これは、写真のファイルが見つからないものをリストアップし、ひとつのアルバム(Not Found)にし、その中でオリジナルファイルが見つかったものを別のアルバム(Origiinal Exists)とします。さらにそれぞれの写真のファイルパスを、テキストファイルに書き出しします。 ーーーーここからーーーー tell application "iPhoto" new album name "Not Found" new album name "Original Exists" set emptyList to "" set originalExistsList to "" repeat with i from 1 to the number of photos in photo library album set thePhoto to photo i of photo library album set thePath to image path of thePhoto tell application "Finder" set theFile to (thePath as POSIX file) if not (theFile exists) then tell application "iPhoto" add thePhoto to album "Not Found" set emptyList to emptyList & thePath & return set originalPath to original path of thePhoto end tell set originalFile to (originalPath as POSIX file) if originalFile exists then tell application "iPhoto" add thePhoto to album "Original Exists" set originalExistsList to originalExistsList & originalPath & return end tell end if end if end tell end repeat if emptyList is not "" or originalExistsList is not "" then set outputFile to choose file name with prompt "Save the broken links list for iPhoto." default name "LinkBrokenList.txt" set fh to open for access outputFile with write permission try write "Not Found any file at the path:" & return to fh write emptyList & return & return to fh write "Only original file is found, but can't open:" & return to fh write originalExistsList to fh on error close access fh return end try close access fh else display dialog "This work is completed." end if end tell ーーーーここまでーーーー ところで、もし私があなたと同じ境遇になった場合、ハードディスクをいったん初期化するか、交換するかを、検討します。不安を感じながら、なにもせずに、そのままMacintoshを使い続けることはないでしょう。
その他の回答 (2)
- harawo
- ベストアンサー率58% (3742/6450)
> import originalPath to album"reImportd"の部分がグレーになっています。 ごめんなさい。1語「from」が抜けていました。この箇所を次のように訂正してください。 import from originalPath to album "reImported" ※いちおうできてしまった、「Not Found」、「reImported」アルバムを削除してから、AppleScriptを実行してください。
お礼
爆足のご回答ありがとうございます。 やり直してみました。 今度は iPhoto でエラーが起きました:AppleEvent がタイムアウトしました。number-1712 image pathの部分がグレーになってます これはなんでしょう?情けない位理解出来ません。 申し訳ありません。
補足
申し訳ありません。原因は省エネ設定だったようです。 もう一度やったら出来ました。 Not Foundにしっかり100枚くらい入っていました。 reimportedの中には0枚でした。 また、読み込めない写真が何枚もあり、はい?かOKを30回くらいクリックしました。 これはどういうコトなんでしょうか? ホントに申し訳ありません。
- harawo
- ベストアンサー率58% (3742/6450)
> 1,サムネールだけ残っているのはどういう操作をしたからでしょうか? > アルバム内でdeleteしても大丈夫ですか? サムネールの画像は、本画像のファイルと別個のファイルとして、iPhoto Library内に保存されています。本画像のファイルが消失しても、残っているので、サムネールはあるが、本画像を開くと「!」マークになるということになります。 現在は、写真のデータベースと、写真の本画像ファイルの有無が一致していない状態です。データベースから写真を削除すること自体に、支障が起きることはありません。 > 2,オリジナルの写真がないサムネールをすべて探すには、一括で検索できますか? iPhotoは、AppleScriptで制御可能なアプリケーションです。適宜プログラムをAppleScriptで書いて、実行することで、実現できます。 一例として、以下のプログラム(スクリプト)を示しておきます。(iPhoto '09用です。iPhoto '08以前では動作しません) ーーーここからーーーー tell application "iPhoto" activate new album name "Not Found" new album name "reImported" repeat with i from 1 to the number of photos in photo library album set thePhoto to photo i of photo library album set thePath to image path of thePhoto tell application "Finder" set theFile to (thePath as POSIX file) if not (theFile exists) then tell application "iPhoto" set originalPath to original path of thePhoto end tell set originalFile to (originalPath as POSIX file) if not (originalFile exists) then tell application "iPhoto" add thePhoto to album "Not Found" end tell else tell application "iPhoto" import originalPath to album "reImported" end tell end if end if end tell end repeat end tell ーーーーここまでーーーー アプリケーション>ユーティリティフォルダにある「AppleScript エディタ」を起動し、このスクリプトをコピー&ペーストします。 「種類:スクリプト」で、適当な名前を付けて、保存します。 ツールバーにある「実行」をクリックすると、iPhotoが起動して、処理を行います。 まず本画像のファイルが存在しないものを探し出します。 iPhotoに取り込んだときの、オリジナル画像が残っている場合、それを再取り込みし、アルバム「reimported」に加えます。 オリジナルも見つからないものは、アルバム「Not Found」に加えられます。 なお、iPhotoの写真データは、いともかんたんに消えてしまったり、行方不明になることはありません。ハードディスクの異常、ソフトウェアレベルか、ハードウェアレベルかわかりませんが、何らかの異常から起きた、一種の「事件」とお考えください。
お礼
ご丁寧なご指導ありがとうございます。 回答がないので諦めかけていました。 早速行ってみました。 30分ほどしてappleScriptエラーが出ました。 iPhoto でエラーが起きました:importに必要な引数(パラメタ)がありません。"number-1701 import originalPath to album"reImportd"の部分がグレーになっています。 申し訳ありませんが、引き続きよろしくお願いします。 ホントに図々しく恥ずかしい限りですが、何卒
お礼
何回か失敗しましたが、今やっと終わりました。 not foundに154枚 original existに154枚中32枚入ってました。 LinkBrokenList.txtには200枚くらい入ってます。数えられなく大体です。 どのように結果をお伝えして良いか分かりませんが、いま気がついたら、オリジナルが見つからない写真はある時期の写真だけです。(他のイベントは一切入っていません) それも、この期間中撮った、40位あるイベントの4つのイベントだけに発生しています。 旅行写真なので5台のカメラで6000枚撮りました。 ほかの写真は一切入ってません。 この時6000枚の中からプリントする写真、スライドショーに使う写真、など様々なアルバムを作りました。 imovieで写真のスライドショーを作成したとき、よくimovieが落ちた記憶があります。(これが原因ではないと思いますが) しかし、154枚と分かったので、昔のバックアップから一枚一枚戻して見ようかと思います。 初期化に関してはいつかやらなくてはいけませんが、time machineからではだめで、クリーンインストールなんでしょうね? 当然ながら1年前に戻っても!マークでした。 大変お世話になりました。 なんとお礼を言っていいか分かりません。 見ず知らずの相手に、ここまでしていただけるとは夢にも思いませんでした。 ありがとうございました。