一意の視覚的識別子を使用して、画像を同じサイズのプレースホルダーに一括置換するにはどうすればよいですか?

1
2022.03.07

環境

作成したゲームのプライベートGitHubリポジトリがいくつかあります。コードベースをオープンソースにしたいのですが、使用されている画像の多くはライセンスされているため、自由に共有することはできません。

コードをコンパイルするには、画像のサイズとファイルタイプを同じにする必要があるため、考えられる解決策は、すべての画像をプレースホルダーに置き換えることです。

標的

  • 一度に数百枚の画像を選択できます。
  • 各画像を同じ名前、サイズ、ファイルタイプのプレースホルダーに置き換えます。
  • 理想的には、各画像には、テキストとして、識別用のファイル名、またはIDが含まれます。

これまでのアイデア

私がすでに知っていることを使用して、画像に「プレースホルダー」レイヤーを追加し、元のレイヤーを上書きするPhotoshopマクロを記録すると、私のタスクの半分が完了します。簡単にまとめて動作する可能性がありますが、画像自体にIDまたはファイル名を取得する方法がわかりません。

画像置換のアイデア、またはおそらくより良い解決策はありますか?

回答
2
2022.03.07

そのタスクには、Linuxでimagemagickを使用できます。

 for file in foo.jpg bar.jpg *.png; do  magick -gravity center -background black -fill white -size "$(identify -format "%wx%h" $file)" caption:"$file" $file; done

説明

  • in;の間で指定されたすべてのファイルに対してforループを実行します。ここでシェル拡張を使用できます(例: *.png

  • magick -gravity center -background black -fill whiteは、白いテキストの中央にファイル名を含む、黒い背景の新しい画像を作成します。

  • -size "$(identify -format "%wx%h" $file)は指定されたファイルの解像度を取得し、その結果を新しいファイルに使用します。 identifyimagemagickの一部です

  • caption:"$file"には、画像に含まれるテキストが含まれています。この場合、 forループから取得したファイル名/パスです。


ノート:

imagemagickはWindows用に存在しますが、正直なところ、このシナリオをWindowsで機能させる方法がわかりません。

1
2022.03.08

他の答えはおそらくLinuxでうまく機能しますが、私はWindowsで機能するよりGUI主導のアプローチが欲しかったので、より制御しやすくなりました。

最終的に、 IrfanViewのバッチ変換機能を使用し、次の「詳細設定」を使用しました。

irfanview batch conversion

したがって、紛らわしい画面を要約すると、次のようになります。

  • 画像の明るさを-255(フルブラック)に設定します。
  • 画像の中央にファイル名( $F )を追加します。
  • カスタム処理順序を使用して、画像が黒くなったにテキストが追加されていることを確認します。
  • オリジナルの上に保存します。
sample input sample output