将 GIMP 颜色曲线与 ImageMagick 结合使用

将 GIMP 颜色曲线与 ImageMagick 结合使用

我使用 GIMP 创建了一条颜色曲线。它看起来像这样:

~/.gimp2.8/curves/selphy

(仅第一行)

# GIMP curves tool settings

(time 0)
(channel value)
(curve
    (curve-type smooth)
    (n-points 17)
    (points 34 0.000000 0.000000 -1.000000 -1.000000 -1.000000 -1.000000 -1.000000 -1.000000 -1.000000 -1.000000 -1.000000 -1.000000 0.375000 0.490637 -1.000000 -1.000000 -1.000000 -1.000000 -1.000000 -1.000000 -1.000000 -1.000000 -1.000000 -1.000000 -1.000000 -1.000000 -1.000000 -1.000000 -1.000000 -1.000000 -1.000000 -1.000000 1.000000 1.000000)
    (n-samples 256)
    (samples 256 .....

我想使用转换(ImageMagick)批量处理一些图像。

有没有办法使用这条曲线convert

答案1

如果您不介意在批处理模式下使用 GIMP 而不是 ImageMagick,则可以使用如下 Script-Fu 脚本:

(define (color-curves filename output-filename curve)
  (let* (
      (image (car (gimp-file-load RUN-NONINTERACTIVE filename filename)))
      (drawable (car (gimp-image-get-active-layer image)))
    )
    (gimp-curves-explicit drawable 0 256 curve)
    (gimp-file-save RUN-NONINTERACTIVE image drawable output-filename output-filename)
  )
)

另存为~/.gimp-2.8/scripts/color-curves.scm

然后,在控制台上:

gimp -i -b '(color-curves "intput.jpg" "output.jpg" #(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 4 4 4 4 4 4 5 5 5 5 5 6 6 6 6 6 7 7 7 7 8 8 8 9 9 9 9 10 10 10 11 11 11 12 12 13 13 13 14 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 23 23 24 25 25 26 27 27 28 28 29 30 31 31 32 33 33 34 35 36 37 37 38 39 40 41 42 42 43 44 45 46 47 48 49 50 51 52 53 54 56 57 58 59 61 62 64 66 67 69 71 73 76 78 80 83 85 88 90 93 96 98 101 104 107 110 113 116 119 122 125 128 132 135 138 141 144 148 151 154 157 160 163 167 170 173 176 179 182 185 188 191 194 197 199 202 205 207 210 212 215 217 219 222 224 226 228 228 230 231 233 235 236 237 239 240 241 242 243 244 245 246 247 248 249 249 250 250 251 251 252 252 252 253 253 253 254 254 254 254 254 254 255 255 255 255 255 255))' -b '(gimp-quit 0)'

samples其中,color-curves 的第三个参数是颜色曲线文件中乘以 255 并四舍五入的值。input.jpgoutput.jpg分别是输入和输出图像(分别为)。

答案2

我曾经看到过一个使用 imagemagick(1) 的以下方法的脚本。

  1. 创建一个黑色画布。
  2. 使用控制点画一条线。
  3. 将线以下的区域涂成白色。
  4. 将图像大小调整为 1 像素高度的条,然后顺时针旋转。

这样,我们得到一个灰色渐变,将其作为 lut 又名提供给 imagemagick。查找表. 通过颜色通道应用它。


另外,gimp自带了lisp函数gimp-curves-spline和gimp-curves-explicit,我们可以编写一些小程序并用批处理渲染引擎运行。curveloader 包可以解析曲线文件格式。必要时请参阅手册。

相关内容