如何将没有颜色的图像批量转换为灰度?
-
21-12-2019 - |
题
我有一个目录,其中包含大量 JPG 图像(纸质文档的扫描件),目前这些图像都是 sRGB。
许多但不是全部实际上没有颜色,或者仅将颜色作为背景(例如,彩色纸或略带灰白色的扫描件)。
我想将这些图像(但不是具有真实颜色的图像)批量转换为灰度,以节省磁盘空间。
我猜测 ImageMagick 有某种方法可以做到这一点,但我不知道如何做。建议?
解决方案
图像魔法的 mogrify
实用程序将是最简单的解决方案。
mogrify -path /path/to/output/dir/ -colorspace Gray /path/to/source/files
识别哪个文档符合真实颜色的能力可能是非常本地化的。我建议评估每个图像的颜色计数,并且仅转换低于给定阈值的图像。
THRESHOLD=1024
FILES=`ls /path/to/source/files`
for FILE in ${FILES}; do
COLORS=`identify -format %k "$FILE"`
if [[ $COLORS -lt $THRESHOLD ]]; then
mogrify -path /path/to/output/dir/ -colorspace Gray "$FILE"
fi
不隶属于 StackOverflow