Как в gimp 2.8 создать направляющую? (в мм)

Работа с различными видами графики, изображений, решение проблем

Модератор: aim

reg123
Сообщения: 284
ОС: Vista

Как в gimp 2.8 создать направляющую?

Сообщение reg123 » 10.12.2012 19:39

Чё то не могу создать направляющую вбив миллиметры.
Спасибо сказали:

Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 7910
Статус: Маньяк
ОС: Android, GNU/Linux, Windows

Re: Как в gimp 2.8 создать направляющую?

Сообщение serzh-z » 10.12.2012 19:47

Щёлкнуть мышью на поле с разметкой и "перетащить" получившуюся линию на холст.
Scio me nihil scire.
Спасибо сказали:

reg123
Сообщения: 284
ОС: Vista

Re: Как в gimp 2.8 создать направляющую?

Сообщение reg123 » 10.12.2012 20:31

Мне нужна точность. Изображение > Направляющие > Создать направляющую. Мне нужно в мм.
Спасибо сказали:

Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 7910
Статус: Маньяк
ОС: Android, GNU/Linux, Windows

Re: Как в gimp 2.8 создать направляющую?

Сообщение serzh-z » 11.12.2012 12:36

Увы. Только в пикселах.

Можно переделать этот скрипт - http://registry.gimp.org/node/24676 - вычислять положение в пикселах и выставлять направляющие.
Scio me nihil scire.
Спасибо сказали:

reg123
Сообщения: 284
ОС: Vista

Re: Как в gimp 2.8 создать направляющую?

Сообщение reg123 » 11.12.2012 14:07

А ведь точно. Можно ведь поправить оригинальный скрипт! Тот который guides-new.scm, с помощью которого создается направляющая.

Там нужно добавить строку, типа:
position=round(x/25.4*DocumentResolution)

Только нужно понимать этот птичий язык ((

Ау! Есть мастера?
Спасибо сказали:

reg123
Сообщения: 284
ОС: Vista

Re: Как в gimp 2.8 создать направляющую?

Сообщение reg123 » 12.12.2012 10:05

Вобсчем повозился минут 40 и наваял

Код: Выделить всё

;; -*-scheme-*-

;; Alan Horkan 2004.  Public Domain.
;; so long as remove this block of comments from your script
;; feel free to use it for whatever you like.

(define (script-fu-guide-new image
                             drawable
                             direction
                             position)
  (let* (
        (width (car (gimp-image-width image)))
        (height (car (gimp-image-height image)))
        (position (round (* (/ position 25.4) (car (gimp-image-get-resolution image)))))
        )
    (if (= direction 0)
        ;; check position is inside the image boundaries
    (if (<= position height) (gimp-image-add-hguide image position))
        (if (<= position width) (gimp-image-add-vguide image position))
    )

    (gimp-displays-flush)
  )
)

(script-fu-register "script-fu-guide-new"
  _"New _Guide..."
  _"Add a guide at the orientation and position specified (in mm)"
  "Alan Horkan"
  "Alan Horkan, 2004.  Public Domain."
  "2004-04-02"
  "*"
  SF-IMAGE      "Image"      0
  SF-DRAWABLE   "Drawable"   0
  SF-OPTION     _"Direction" '(_"Horizontal" _"Vertical")
  SF-ADJUSTMENT _"Position"  (list 0 0 MAX-IMAGE-SIZE 1 10 0 1)
)

(script-fu-menu-register "script-fu-guide-new"
                         "<Image>/Image/Guides")


Бегло потестировал, вроде работает, но пару раз проскакивало несоответствие округлений (gimp и scheme). Пока некогда возиться с этой жестью и от скобок в глазах двоится.
Спасибо сказали: