[mdk-re] Re: [JT] консольный gimp

Alexander Bokovoy =?iso-8859-1?q?a=2Ebokovoy_=CE=C1_sam-solutions=2Enet?=
Вт Мар 12 13:47:25 MSK 2002


On Tue, Mar 12, 2002 at 11:04:48AM +0300, Artem Pastuchov wrote:
> Hello Mikhail,
> 
> Tuesday, March 12, 2002, 1:05:14 AM, you wrote:
> 
> MZ> Hello roman_tutov,
> 
> MZ> On Mon, Mar 11, 2002 at 03:26:11PM +0300, roman_tutov на mail.ru wrote:
> >>
> >> ЗЫ . Да ну вас линуксоидов . Я удивляюсь почему гимп не консольный .:)
> 
> MZ> Ну, а чем плох ImageMagick? :)
> Мало того , никто не мешает применятьGimp в консоли
> для этого есть перловые и питоновые модули
И модули для Ruby. Которые, более того, позволяют действительно в консоли
все проделывать, да еще и из программы, запущенной на другой машине. Вот
пример (взят из рассылки ruby-talk, автор Masahiro Sakai):

1. start up gimp and dRuby server
   (its menu path is <Toolbox>/Xtns/Ruby-Fu/dRuby Server/Start...)
   BTW you can start up them from command-line like
   % gimp --no-interface --batch '(ruby-fu-druby-server 1 "druby://:7950" "")'

2. Then you can use gimp procedures via dRuby.
   Following is an example.

  require 'gimp/base'
  require 'drb/drb'

  DRb.start_service(nil, nil)
  g = DRbObject.new(nil, 'druby://:7950')
  
  width  = 100
  height = 100
  
  old_fg = g.gimp_palette_get_foreground
  old_bg = g.gimp_palette_get_background
  
  img = g.gimp_image_new(width, height, Gimp::RGB)
  begin
    img.undo_disable # equivalent to g.gimp_image_undo_disable(img)
  
    d = g.gimp_layer_new(img, width, height, Gimp::RGBA_IMAGE, "Background",
                         100, Gimp::NORMAL_MODE)
    img.add_layer(d, -1) # equivalent to g.gimp_image_add_layer(img, d, -1)
    g.gimp_palette_set_background(Gimp::Color.new(255,255,255))
    g.gimp_edit_fill(d, Gimp::BG_IMAGE_FILL)
  
    d = g.gimp_layer_new(img, width, height, Gimp::RGBA_IMAGE, "BoxLayer",
                         100, Gimp::NORMAL_MODE)
    img.add_layer(d, -1)
    g.gimp_drawable_fill(d, Gimp::TRANS_IMAGE_FILL)
    
    g.gimp_rect_select(img, width/4, height/4, width/2, height/2,
                       Gimp::ADD, false, 0)
    g.gimp_palette_set_foreground(Gimp::Color.new(0,0,255))
    g.gimp_bucket_fill(d, Gimp::FG_BUCKET_FILL, Gimp::NORMAL_MODE,
                       100, 0, false, 0, 0)
    g.gimp_selection_none(img)
  
    #g.script_fu_drop_shadow(Gimp::RUN_NONINTERACTIVE, img, d, "8", "8", "5.0",
    #                        Gimp::Color.new(0,0,0), "70", true)
  
    img.active_layer = d
    g.gimp_palette_set_foreground(Gimp::Color.new(255, 0, 0))
    d = g.gimp_text_fontname(img, nil, width/4, height/4, "Ruby!", 0, true,
                             15, Gimp::PIXELS,
                             "-adobe-utopia-medium-r-normal-*-*-*-*-*-p-*-*")
  
    img.flatten # equivalent to g.gimp_image_flatten(img)
  
    filename = '/home/susho/my_src/hoge.bmp'
    g.file_bmp_save(Gimp::RUN_NONINTERACTIVE, img, img.active_drawable,
                    filename, filename)
  ensure
    img.delete # equivalent to g.gimp_image_delete(img)
    g.gimp_palette_set_background(old_bg)
    g.gimp_palette_set_foreground(old_fg)
  end

There are many many proedures provided by the gimp.
DB Browser (<Toolbox>Xtns/DB Browser...) will be your help
for searching functions.
-- 
/ Alexander Bokovoy
Software architect and analyst             // SaM-Solutions Ltd.
---
I'm having an emotional outburst!!




Подробная информация о списке рассылки community