問題タブ [exiftool]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
bash - Grep-exiftoolの出力でさまざまな一致を検索します
大きなフォルダツリーがあり、キーワード検索に基づいてgThumbまたはその他の画像ビューアを開くためのスクリプトを作成したいと思います。 exiftool
はすでに私のシステムにインストールされています。とコマンド
データをフォーマットで出力します
現在、
メタデータのキーワード行を次のように出力します
ここ$1
で、はキーワード検索値です。今のところ、私の解決策は2つのループを使用し、それぞれexiftool
が異なるgrep値の呼び出しを実行することです。exiftool
一致するキーワードに対して、関連付けられたファイル名がリストに渡される単一の呼び出しを実行するにはどうすればよいですか。
編集-明確化:
キーワードフィールドに一致するものが存在する場合、FileName行を出力したいと思います。ただし、Keywordは、テキスト出力のFileNameの約20行下に存在します。
eval - 解析エラー: 構文エラー、予期しない 'image' (T_STRING) が eval 行にあります
画像のメタデータを読み取り、ユーザーが編集して同じ画像に保存できるようにするページを作成しようとしています。
インターネットを検索した後、解決策として exiftool を見つけましたが、ページ内のライブラリとしてではなく、コマンドラインとしてのみ機能させることができます。
私はこのコードを持っています:
eval('$metadata=' .
exiftool.exe -php -q $imagePath
);
foreach ($metadata[0] as $key => $value) {
if ($metadata[0][$key]!=$_POST[$key]){
if ($_POST[$key]=="") $_POST[$key]=" "; //if metadata is not set, than create an empty metadata
eval('$metadata=' . exiftool.exe "-$key=$_POST[$key]" $imagePath
);
}
}
そして、私はこのエラーが発生しています:
解析エラー: 構文エラー、E:\xampp\htdocs\imgdata\index.php(30) の予期しない 'image' (T_STRING) : 行 1 の eval()'d コード
` を " や ' などの他のものに置き換えようとしましたが、うまくいきませんでした。
ありがとう
identify - 画像のカラーモードを取得する最速の方法
画像ファイル(jpg、tif)のカラーモード(bitmap、grey、rgb、cmyk)を取得したい。Imagemagick は「カラースペース」と呼び、exiftool は「カラーモード」と Photoshop は「イメージ モード」と呼んでいます。
1 つの可能性は識別であり、ほぼ常に望ましい結果が得られますが、非常に遅いです。識別にも問題があり、モノクロ画像 (ビットマップ) をグレーとして識別します。
exiftool は高速です (モノクロを「ビットマップ」として検出しますが、これは正しいです) が、常に色空間をまったく提供するとは限りません。
exiftool または他の高速な方法を使用してカラーモードを常に取得することは可能ですか?
macos - PNG 画像で OSX 可視 XMP メタデータを作成する Exiftool
私の画像処理ソフトウェアでは、exiftool を使用して、Cr2、TIFF、JPG ファイルからの exif 情報をうまくシャッフルしています。「キーワード」などの追加されたタグはすべて、OSX (マウンテン ライオン) Finder、プレビューで表示され、Spotlight によって適切にインデックス化されます。
PNG の場合、これは PNG のメタデータ コンテナーであるため、XMP にフォールバックする必要があります。ただし、exiftool で追加されたタグは、Preview にも SpotLight にも反映されないようです。対照的に、最初にプレビューでタグを追加し、exiftool を使用して後で新しいタグを追加すると、これはインデックス化されます。ここでの違いは、exiftool が新たにヘッダーを作成する XMP 生データで見られますが、Preview はそうではありません。
例として、メタデータなしの PNG の Wikipedia ページから次の PNG を見てください https://upload.wikimedia.org/wikipedia/commons/4/47/PNG_transparency_demonstration_1.png :
exiftool を使用してキーワードを追加し、その後 XMP データブロックをダンプします。
次の XMP データを提供します。
ただし、プレビューまたは Finder 情報パネルでは、「ViaExifSubject」は見つかりません。
または、OSX プレビューを使用してコメントを追加します (プレビューで開く、インスペクターを表示、キーワード タブに移動し、[+] をクリックしてキーワードを追加します)。XMP が exiftool を介して再度ダンプされました:
Preview で生成されたxpacket
キーワードにヘッダーが存在せず、XMP Toolkit が異なります。「viaPreview」タグが表示されるようになりmdls
ました (例: CLI で使用)。
生の XMP 情報をクリーンなファイルにプッシュしても、期待どおりの結果が得られません。
驚くべきことに、最初にプレビューを使用してタグを作成し、その後上記のコマンドを実行すると、新しいタグが反映されます。「アクティブ化」する必要がある外部データ パーサーを監督していると思われ、タグを取得して別の場所に配置します。ストア (例: .DS_store)。xattr が追加されているのを見たことがありません。
これらは私の質問です:
- exiftool は XMP/PNG の組み合わせに適したツールですか? 特定の機能が不足していますか?
- OSX は XMP 標準に逆らいますか? 編集:明らかにXMPはデフォルトでOSXによって尊重されていません
- コンテナを削除する代替ツールで調査する必要がありますか?
ディスク上の xmp_sdk を掘り起こし、提供されたサンプルを試してみました。
ModifyXMP は、OSX Finder に表示される「純粋な」XMP 情報を PNG に書き込むことができます。これは良いターゲットです。
ReadingXMP は、ExifTool によって PNG に挿入された XMP 情報を読み取ることができますが、この情報は OSX Finder には表示されません。
ファイル サイズは、ModifyXMP の出力とまったく同じ XMP BLOB を挿入する exiftool を参照すると似ています。XMP sdk がそれを PNG のヘッダーに配置するファイルの末尾に、exiftool が追加されることを diff が示しています。XMP 仕様では、 「エンコーダーはファイルの先頭にチャンクを配置することをお勧めしますが、これは必須ではありません」と述べています。
結論: exiftool が XMP を書き込む方法には (わずかな) 違いがあり、これは特に OSX のメタデータの取得を混乱させます。
今のところ:
- 代わりに XMP SDK を試して、最初にクリーンな XMP パケットを挿入し、exiftool でこの最初のチャンクを再利用します。
私は exiftools のフォーラムに再投稿し、著者の Phil Harvey は次のように返信しました。
Apple Preview をいじってみましたが、ファイルの末尾にある XMP を認識しないだけでなく、画像にキーワードを追加すると、この XMP も削除されます。私の推測では、XMP が IDAT チャンクの後にある場合、Apple ソフトウェアは XMP を無視します。XMP 仕様で XMP チャンクが IDAT の前に来るように義務付けられていれば素晴らしいことでしたが、そうではなかったため、これは Apple ソフトウェアのバグと見なす必要があります。これを既知の問題のリストに追加しました。
最後に、Phil Harvey は Exiftool 自体でこの問題を修正することにしました。
私はこれについて多くの作業を行ってきました。Exiftool 9.40には、PNG IDAT チャンクの前に XMP を書き込むことができる新しいオプションがあります。対応するコマンドは次のようになります。
exiftool -api PNGEarlyXMP
...Apple にバグを報告 -- 2014 年 12 月の更新: Apple は私のバグをクローズし、このトピックについて何の措置も取らないと述べました
python - Python: 画像から Exif 情報を削除する
Web サイトで使用する画像のサイズを小さくするために、品質を 80 ~ 85% に落としました。これにより、画像サイズがかなり縮小されます。
品質を落とさずにサイズをさらに縮小するために、友人は、カメラからの生の画像には Exif 情報と呼ばれるメタデータがたくさんあることを指摘しました。この Exif 情報は Web サイトの画像に保持する必要がないため、削除できます。これにより、サイズがさらに 3 ~ 10 kB 縮小されます。
しかし、Python コードでこれを行うための適切なライブラリを見つけることができません。関連する質問を閲覧し、いくつかの方法を試しました。
元の画像: http://mdb.ibcdn.com/8snmhp4sjd75vdr27gbadolc003i.jpg
-
結果: http://s23.postimg.org/aeaw5x7ez/8snmhp4sjd75vdr27gbadolc003i_mogrify.jpg この方法は、サイズを 105 kB から 99.6 kB に縮小しますが、色の品質も変更します。
-
結果: http://s22.postimg.org/aiq99o775/8snmhp4sjd75vdr27gbadolc003i_exiftool.jpg この方法は、サイズを 105 kB から 72.7 kB に縮小しますが、色の品質も変更します。
- この回答では、Exif 情報を操作する方法について詳しく説明していますが、それを使用して情報を削除するにはどうすればよいですか?
画像の色、寸法、その他のプロパティを変更せずに、余分なメタデータをすべて削除するのを手伝ってくれる人はいますか?
python - Pythonで長いexifタグを読む
次のような顕微鏡画像の EXIF 情報を読み取ろうとしています: https://dl.dropboxusercontent.com/u/3816350/E3-9.tif
画像の縮尺に関する情報が含まれているため、「画像の説明」タグに最も関心があります。exifread パッケージを使用して EXIF 情報を正常にロードしました。
ただし、出力でイメージの説明が切り取られており、「イメージ ImageDescription」フィールド全体を表示する方法がわかりません。どうすればこれを行うことができますか?
ところで、私は PIL を使用して、このコードを使用して EXIF 情報を読み取ろうとしました (ここで説明されているように):
しかし、次のエラーが表示されます。
コマンドラインで exiftool も試してみましたが、画像の説明フィールドもわずかに切り取られます。
ヒントをいただければ幸いです。