5

Я создал цветовую кривую с 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?

2 ответа2

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 в вашем файле цветовых кривых, умноженные на 255 и округленные. input.jpg и output.jpg - входные и выходные изображения (соответственно).

0

Однажды я видел скрипт со следующим методом, использующим imagemagick(1).

  1. создать черный холст.
  2. Нарисуйте линию, используя контрольные точки.
  3. закрасьте область ниже линии белым цветом.
  4. измените размер изображения на 1-пиксельную строку и поверните его по часовой стрелке.

таким образом, мы получаем серый градиент, передавая его в imagemagick как lut aka. справочная таблица . применить это по цветным каналам.


кроме того, gimp поставляется с функциями lisp gimp-кривые-сплайн и gimp-кривые-явные, мы можем написать небольшую программу и запустить ее с помощью механизма пакетного рендеринга. пакет curveloader может анализировать формат файла кривой. при необходимости обратитесь к руководствам.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .