世界を動かす技術を、日本語で。

Apple Photosアプリが画像を破損する

概要

Apple Photosアプリでカメラから画像をインポートする際にファイルが破損する問題を経験。 「インポート後に削除」機能の使用が大きなリスクであると判明。 ハードウェアをすべて交換しても問題は解決せず、ソフトウェア側の不具合と推定。 現在はDarktableを用いた新しいワークフローに移行し、問題を回避。 同じ問題に悩む方の参考になればと、詳細な調査と対策を共有。

Apple Photosアプリでの画像破損問題の発生と調査

  • Apple Photosアプリ でカメラから画像をインポートする際に 画像破損 が発生する事象
  • OM System OM-1 カメラでRAW + jpg撮影、インポート時に「 インポート後に削除」を選択
  • 数千枚中1〜2枚の破損は見逃していたが、家族の結婚式で約 30%の画像が破損 し重大な問題と認識
  • PhotosアプリはRAW + jpgを自動でまとめて表示、破損はjpgのみ・RAWのみ・両方と パターンが様々
  • SDカードのデータ削除後 に破損が発覚したため、元データの状態確認が不可能

問題切り分けのための検証

  • ハードウェア故障を疑い、以下の手順で 一つずつ検証
    • USB-Cケーブル交換
    • メーカー純正新品SDカード購入
    • RAWのみ撮影に切り替え
    • 新しいノートPC購入
    • 新型カメラ(OM System OM-1 MKii)購入
  • 機材を全て交換しても 画像破損が継続
  • インポート後に削除」をやめ、インポート後に破損有無を確認し、問題なければSDカードをフォーマットする運用に変更
  • 数ヶ月間この運用で破損は発生せず、 Photosアプリのコピー&削除処理の競合 (レースコンディション)を疑う

再発と最終的な結論

  • RailsConfから帰宅後のインポートで 再度破損画像が発生
  • SDカード上の元画像は破損しておらず、カメラの問題ではないと確定
  • 破損ファイルを削除し再インポートすると正常に読み込める場合もあり、 Photosアプリ側のランダムな破損 と推測
  • OM Systemカメラ特有かは不明だが、他のカメラシステムを試す予定なし

破損ファイルの比較

  • md5sum コマンドで破損前後のファイルを比較、ファイルサイズは同じだが バイト列が異なる
  • xxddiff でバイナリ比較、明確な違いを確認

新しいワークフローへの移行

  • Photosアプリの信頼性に見切り をつけ、 Darktable を使ったワークフローに完全移行
    • Darktableで画像をインポート
    • 不要な写真を削除(カリング作業)
    • 必要な写真を現像
    • jpgと元のRAWファイルをエクスポート
    • それらをPhotosアプリにインポートし閲覧・共有
    • 定期的にSDカードをフォーマット
  • Darktableでのインポートでは 画像破損が一度も発生せず、Photosアプリ側の問題と確信
  • 機材・時間・手間を費やしたが、 最終的に安定した運用 を確立

まとめ・注意点

  • Photosアプリの「インポート後に削除」機能は要注意
  • 画像管理の信頼性重視なら 他のワークフロー検討 を推奨
  • 同様の問題で悩む方の 一助となる情報提供

Darktable や他の写真管理アプリの利用も視野に入れ、 大切な写真のバックアップと運用方法の見直し をおすすめ。

Hackerたちの意見

インポートパイプラインのバグっぽいね。Photosはインポート時にいろいろ余計な処理をするから(RAWとJPEGのペアをマージしたり、プレビューを生成したり、データベースのインデックスを作ったり、オプションで削除したり)、多分、バッファが再利用されたり、コピーが終わる前にファイルハンドルが閉じられちゃうような競合バグだと思う。たまに起こる予測できない破損って感じだね。

これも僕の推測だよ。本当に残念だし、Appleに報告したいけど、再現手順をどうやって提供すればいいかわからないから困ってる。

30%の失敗率から、全部交換した後は1つの失敗を見つけるのに時間がかかるってのは面白いね。ランダムってのはランダムで、塊になってることもあるから、パーツを交換するのは関係ないかもしれないけど… 彼の交換の旅で、どれくらいの頻度で破損が起きたのか、もっと詳しく知りたかったな。編集:あと、なんか気づいたんだけど、仕事中に「tenderlovemaking.com」に行ってた。最悪。笑。

これってインポート元に関係してるのかな?それともそのハードウェアの速度かも。写真アプリには成功裏に写真をインポートしてるけど、カメラからはダメなんだよね。

これはAppleが新しい高レベルのメディアインポートフレームワークを提供する理由になるかも?

これは履歴に残したくないURLな気がする。

このサイトはアーロン・パターソンのもので、世界で最も多作なRuby開発者の一人だよ。

なんで?素晴らしいじゃん。

90年代後半、当時の妻が僕の肩越しに見ていて、アドレスバーに「freshmeat.net」ってドメインがオートコンプリートで出てきたのを見たんだ。彼女は当然疑ってたけど、ただのソフトウェア配布サイトだって見せたら納得してくれた。

「優しい愛撫」がそんなに衝撃的なの?

Gearspaceっていうすごく人気のあるプロオーディオのウェブサイトがあって、昔はもっとスパイシーな名前だったんだよね。 https://gearspace.com/ https://www.reddit.com/r/audioengineering/comments/mftc0g/ge...

えっ、君はテンダー・ラブメイキングが好きじゃないの?

Hacker Newsで議論の続きを見る