2013-03-18 2 views
1

У меня возникли проблемы с повторной записью одного из сценариев логотипов по умолчанию в GIMP (используя скрипт-fu на основе схемы). С одной стороны, альфа-слой не отображается в браузере слоев после отображения изображения. Я переписывание Создать неоновый Logo скрипт (неон-logo.scm), и я хочу, чтобы это сделать следующее, прежде чем он отображает новое изображение:GIMP Script-fu меняет сценарии по умолчанию

  1. добавить альфа-канал
  2. изменение черный (цвет фона) к прозрачному с помощью colortoalpha
  3. возвращают сформированный образ в качестве объекта, который следует использовать в другом питона скрипт (используя для петель, чтобы генерировать 49 изображений) Я попытался модифицировать следующий код сценария по умолчанию:

    (gimp-image-undo-disable img) 
        (apply-neon-logo-effect img tube-layer size bg-color glow-color shadow) *Generates neon logo 
        (set! end-layer (car (gimp-image-flatten img))) *Flattens image 
        (gimp-layer-add-alpha end-layer) *Adds alpha layer as last layer in img(img=the image) 
        (plug-in-colortoalpha img 0 (255 255 255)) *Uses color to alpha-NOT WORKING 
        (gimp-image-undo-enable img) *Enables undo 
        (gimp-display-new img) *Displays new image 
    

Для номер 3 мой питон код заключается в следующем:

 for str1 in list1: 
      for color1 in list3: 
       img = pdb.script_fu_neon_logo(str1,50,"Swis721 BdOul BT",(0,0,0),color1,0) 

Но IMG является "Nonetype" объект. Я хотел бы сделать так, чтобы вместо отображения сгенерированного изображения в новом окне он просто возвращает сгенерированное изображение для использования с моим скриптом python. Может ли кто-нибудь помочь?

ответ

1

Возможно, чтобы сохранить все более управляемым и читаемым, вы должны перевести теоретический сценарий в Python - таким образом вы не будете удивлены другими тривиальными вещами как переменное назначение, выбор элементов из последовательностей и т. Д.

1 и 2) ваши звонки достоверно правильны, чтобы упростить «добавить альфа-канал» (а не «альфа-слой», как вы пишете, пожалуйста) к изображению, - но вы вызываете цвет-альфа, чтобы сделать Белый (255 255 255) transparemt не черный. Трей, изменяя это на (0 0 0) - если он не работает, сделайте] каждый из вызовов индивидуально, либо на скрипт-fu-консоли, либо на консоли python, и проверьте, что не так.

3) Script-fu не может возвращать значения вызывающему абоненту (как видно из-за отсутствия параметра типа возвращаемого значения для вызова регистра). Это означает, что скрипты в схеме в GIMP могут отображать только заголовки и не будут использоваться для составления более сложных цепей.

Это дает вам два варианта: портируйте исходный скрипт на Python-fu (и просто зарегистрируйте его, чтобы вернуть PF-IMAGE) - или взломайте вызов, например это, в Python: создать набор со всеми открытыми изображениями, вызвать ваш скрипт-fu, проверить, какие из ваших изображений в данный момент открываются, не находится на ранее сохраненных изображениях - это будет ваше новое изображение:

Сложная часть этого заключается в том, что: нет уникального идентификатора изображения, когда вы видите его из Python-fu, поэтому вы должны составить такое значение, как (name, number_of_layers, size), чтобы перейти к этим наборам сравнения, и даже это может не хватить - или вы можете манипулировать «паразитами» (произвольные данные, которые могут быть прикреплены к изображению). Как вы можете видеть, наличие оригинального сценария-fu перезаписывается на Python, поскольку вся работа выполняется с помощью вызовов PDB, и эти переводы 1: 1 предпочтительнее.

+0

Ну, я понял, что мне нужно! Благодаря! Я собираюсь открыть новый вопрос, так как у меня возникают проблемы с python (экспорт через gimp_png_save) экспортирует только прозрачный фон и ничего другого. –

Смежные вопросы