语境
我有几个自己制作的游戏的私人 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)
将获取指定文件的分辨率并将结果用于新文件。identify
是imagemagick
caption:"$file"
包含图像中包含的文本,在本例中是我们从for
循环中获得的文件名/路径。
笔记:
虽然 imagemagick 适用于 Windows,但我真的不知道如何让这种情况在 Windows 上运行。
答案2
虽然其他答案可能在 Linux 上运行良好,但我想要一种可以在 Windows 上运行的更加 GUI 驱动的方法,并且我感觉自己能更好地控制。
我最终使用了伊凡视界的批量转换功能,具有以下“高级设置”:
因此,总结一下令人困惑的屏幕:
- 将图像的亮度设置为 -255(全黑)。
- 将文件名(
$F
)添加到图像的中心。 - 使用自定义处理顺序,确保添加文本后图像变黑。
- 保存原始内容。