【问题标题】:Imagemagick - use mogrify only for files with colorspace CMYKImagemagick - 仅对具有 CMYK 颜色空间的文件使用 mogrify
【发布时间】:2021-06-11 18:49:59
【问题描述】:

我只需要为 CMYK 颜色空间文件使用 jpg 转换脚本。问题是文件夹中有很多jpg文件(colospace sRGB和CMYK)。我想使用 mogrify 功能。我已经创建了一个通用脚本来更改文件夹中的所有文件。我需要创建一个过滤器以使脚本仅适用于带有 CMYK 文件的 JPG

cd "C:\Program Files\ImageMagick-7.0.11-Q16-HDRI\"
magick mogrify -profile c:\test\profile\USWebCoatedSWOP.icc -profile "c:\test\profile\sRGB Color Space Profile.icm" -quality 80 c:\test\*.jpg

【问题讨论】:

  • mogrify 无法对色彩空间进行过滤,只能处理 CMYK。您需要编写一个脚本循环来测试色彩空间,然后对 CMYK 文件进行转换。

标签: windows batch-file imagemagick


【解决方案1】:

正如 Fred (@fmw42) 所说,mogrify 不能像这样根据图像类型限制其处理。但是,它可以处理文件名列表。所以,如果filelist.txt 看起来像这样:

image32.jpg
image43.jpg
...

您可以让mogrify 像这样调整这些文件的大小:

magick mogrify -resize 640x480 @filelist.txt

所以,现在的问题是如何生成 CMYK 文件列表。我无法确切告诉您如何在 Windows 上执行此操作,但我可以告诉您如何开始,希望您能解决剩下的问题。

如果您运行此命令,它将在文件中打印一行,其中包含每个图像的色彩空间和文件名:

magick identify -format "%[colorspace]:%f\r\n" *.jpg > filelist.txt

样本输出

CMYK:a.jpg
sRGB:b.jpg

地点:

  • %[colorspace] 是图片的色彩空间
  • : 只是我随机选择的分隔符
  • %f 是图片文件名
  • \r\n 是 Windows CR+LF 行尾。

然后您只需要选择以CMYK 开头的行并丢弃第一个字段,您的工作就完成了。在 Linux/macOS 中,我会使用:

magick identify -format "%[colorspace]:%f\n" *.jpg | grep "^CMYK" | cut -d: -f2 > filelist.txt

Windows 可以使用 grepcut,但在 Windows 中可能还有其他(更原生的)方法可以使用 FOR 循环选择行喜欢this

【讨论】:

  • 感谢您抽出宝贵的时间,但我刚刚找到了解决方案。
【解决方案2】:

我能够得到我需要的效果。我找到了一个类似的脚本并根据我的需要对其进行了编辑。我不是程序员,所以对语法感到抱歉。也许它会对某人有用。

@echo off
for /F "delims=" %%I in ('dir /B /S *.jpg') do call :process "%%I"
goto :eof

:process
C:\Progra~1\ImageMagick-7.0.11-Q16-HDRI\magick identify -verbose %1 | find /c /i "Colorspace: CMYK" > c:\test\temp.txt
set /p count=<c:\test\temp.txt
del c:\test\temp.txt
if %count%==1 (
C:\Progra~1\ImageMagick-7.0.11-Q16-HDRI\magick.exe mogrify -profile c:\test\profile\USWebCoatedSWOP.icc -profile c:\test\profile\sRGBColorSpaceProfile.icm -quality 80 "%~dpn1.jpg"
)
goto :eof

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-02
    • 2014-05-31
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 2011-11-04
    • 2011-03-25
    • 1970-01-01
    相关资源
    最近更新 更多