如何使用相同尺寸的占位符批量替换具有唯一视觉标识符的图像?

如何使用相同尺寸的占位符批量替换具有唯一视觉标识符的图像?

语境

我有几个自己制作的游戏的私人 GitHub 存储库。我想将代码库开源,但使用的许多图像都是经过授权的,因此无法免费共享。

由于图像尺寸和文件类型需要保持不变才能使代码编译,因此一个可能的解决方案是用占位符替换所有图像。

目的

  • 能够一次选择几百张图像。
  • 用具有相同名称、大小和文件类型的占位符替换每个图像。
  • 理想情况下,每个图像都应包含用于识别的文件名或 ID(以文本形式)。

目前的想法

使用我已知的知识,录制一个 Photoshop 宏,在图像上添加一个“占位符”层并覆盖原始层,这样就完成了一半的任务。它可以轻松地批量工作,但我看不出有任何方法可以将 ID 或文件名放入图像本身。

对于图像替换有什么想法或更好的解决方案吗?

答案1

您可以imagemagick在 Linux 上使用该任务。

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

解释

  • 对和for之间的所有指定文件进行循环。例如,您可以在此处使用 shell 扩展,in;*.png

  • magick -gravity center -background black -fill white将创建一个具有黑色背景的新图像,其中包含以白色文本居中的文件名。

  • -size "$(identify -format "%wx%h" $file)将获取指定文件的分辨率并将结果用于新文件。identifyimagemagick

  • caption:"$file"包含图像中包含的文本,在本例中是我们从for循环中获得的文件名/路径。


笔记:

虽然 imagemagick 适用于 Windows,但我真的不知道如何让这种情况在 Windows 上运行。

答案2

虽然其他答案可能在 Linux 上运行良好,但我想要一种可以在 Windows 上运行的更加 GUI 驱动的方法,并且我感觉自己能更好地控制。

我最终使用了伊凡视界的批量转换功能,具有以下“高级设置”:

irfanview 批量转换

因此,总结一下令人困惑的屏幕:

  • 将图像的亮度设置为 -255(全黑)。
  • 将文件名($F)添加到图像的中心。
  • 使用自定义处理顺序,确保添加文本图像变黑。
  • 保存原始内容。
示例输入 示例输出

相关内容