web-dev-qa-db-ja.com

JPEGメタデータを編集するときに「エラー0x80070057:パラメーターが正しくありません」

NewHorizo​​nsが撮影したNYT12014 MU69画像 からダウンロードした画像 ブログ投稿 のメタデータを変更しようとすると、次のエラーが発生します。

予期しないエラーにより、プロパティをファイルに適用できなくなります。このエラーが引き続き発生する場合は、エラーコードを使用して、この問題のヘルプを検索できます。

エラー0x80070057:パラメーターが正しくありません。

スクリーンショット:

Screenshot of Error 0x80070057 on Windows 10

いくつかの観察:

  • ファイルの場所のパスは 256文字に近い長さではありません
  • ファイル名は Windowsの予約名 のいずれでもありません
  • このファイルは読み取り専用ではなく、ファイルに対する完全な読み取り/書き込み権限があります。
  • イメージを再ダウンロードしたり、イメージの名前を変更したりしても、エラーは毎回確実に表示されます。
  • 同じフォルダ内の他のJPEGファイルのメタデータを問題なく編集できるので、これはシステムやハードドライブの破損に関連しているとは思いません。
  • 「スキップ」を押すと、アクションは完了しますが、メタデータは変更されません。

私がすでに見たおそらく関連するスレッド:

1
ahiijny

このエラーの根本的な原因はわかりませんが、ファイル自体に関係があるようです。 exiftool から 破損したEXIFを修復 を使用すると、問題が解決するようです。コマンドは次のようになります。

exiftool -all= -tagsfromfile @ -all:all -unsafe -icc_profile bad.jpg

これが何をするかについての詳細:

このコマンドは、すべてのメタデータを削除してから、元のイメージから抽出できるすべての書き込み可能なタグを、更新されたイメージの同じ場所にコピーします。 「安全でない」タグは、通常はコピーされないJPEG画像内の安全でないEXIFタグのショートカットです。 JPEG画像には、保存する必要のあるICCカラープロファイルが含まれている場合もあります。 「ICC_Profile」タグも安全ではないとマークされていますが、EXIFの一部ではないため、「安全でない」ショートカットの対象外であり、個別に指定する必要があります。

注:ExifToolはJPEG画像データを変更しません。

詳細:新しく作成されたEXIFのバイト順序は、ExifByteOrderタグの値によって設定されます。 ExifByteOrderが設定されていない場合、バイト順序は、コピーされている場合はMakerNotesの順序によって決定されます。それ以外の場合は、デフォルトでビッグエンディアン( "MM")のバイト順序が使用されます。 ExifByteOrderを特定の値に設定して、新しいEXIFを作成するときに特定のバイト順序を強制することができます(例:リトルエンディアンの場合は「-ExifByteOrder = II」)。

bad.jpgという名前のファイルで上記のコマンドを実行すると、ファイル名bad.jpg_originalで元のファイルのコピーが保持されることにも注意してください。

1
ahiijny