### 10.7. O Submenu “Script-Fu”

Este submenu contém alguns comandos Script-Fu, especialmente o console Script-Fu. Script-Fu é uma linguagem para escrever scripts, que permite que você execute uma série de comandos do GIMP automaticamente.

#### 10.7.1. Activating the Submenu

You can access this command from the main menu through Filters → Development → Script-Fu.

#### 10.7.2. Console Script-Fu

O console Script-Fu é uma janela de diálogo onde você pode testar e executarinterativamente comandos de Scheme - a linguagem do Script-fu.

The console consists of a large scrollable main window for output and a text box at the bottom to enter Scheme commands. When you type a Scheme statement and then press the Enter key, the command and its return value will be displayed in the main window.

Figura 16.235. O Console Script-Fu

Você vai encontrar mais informações sobre Scheme e exemplos de como usar o console Script-Fu em Seção 3, “Um tutorial de Script-Fu”.

Os Botões do Console de Script-Fu

Procurar

  The Browse button is next to the Scheme commands text box. When clicked, the procedure browser window opens with an additional Apply button.

  Select a PDB procedure from the list and press the Apply button. The selected procedure and its parameter names will be pasted into the text box of the Script Console.

  Now you just have to replace the parameter names after the procedure name with actual values. Then you can call the procedure by pressing Enter.

Fechar

  Ao pressionar este botão o console Script-Fu será fechado.

Limpar

  When you click on this button, the content of the main window will be removed. Note that you can't get back the removed content using the Save command.

Salvar

  Este comando permite que você salve o conteúdo da janela principal, que é a saída do console Script-Fu (incluindo os caracteres “`>>`”). O conteúdo é salvo como um arquivo de texto, apenas como referência. Você pode copiar e colar trechos do arquivo para criar seu próprio Script-fu depois. Note que não há uma opção para carregar um arquivo salvo desta janela (e uma vez que o arquivo não é só a listagem dos comandos executados, mas os comandos e sua resposta, carregar o arquivo nem faria muito sentido).

#### 10.7.3. Iniciar Servidor

This command will start a server, which reads and executes Script-Fu (Scheme) statements you send it via a specified port.

Figura 16.236. Opções do Servidor Script-Fu

Listen on IP

  The IP address the Script-Fu server will listen on. This is usually 127.0.0.1 (also known as localhost). Only change this if you know what you are doing.

Porta do Servidor

  O número da porta que servidor Script-Fu vai ouvir. É possível iniciar mais de um servidor, especificando números de porta diferentes, é claro.

Arquivo de registros (logfile) do Servidor

  Optionally you can specify the name of a file the server will use to log informational and error messages. If no file is specified, messages will be written to stdout.

O Protocolo do Servidor Script-Fu.

O protocolo usado para comunicações com o servidor Script-Fu é muito simples:

- Cada mensagem (instrução Script-Fu) de comprimento `L` enviado para o servidor tem que ser precedido pelos 3 bytes seguintes:

  Tabela 16.1. Formato de cabeçalho para comandos

  Byte # | Conteúdo | Descrição
  --- | --- | ---
  0 | 0x47 | byte Mágico ('G')
  1 | L div 256 | Byte alto de `L`
  2 | L mod 256 | Byte baixo de `L`

- Cada resposta do servidor (valor de retorno ou mensagem de erro) de comprimento `L` será precedida pelos 4 bytes seguintes:

  Tabela 16.2. Formato de cabeçalho para respostas

  Byte # | Conteúdo | Descrição
  --- | --- | ---
  0 | 0x47 | byte Mágico ('G')
  1 | código de erro | 0 em caso de sucesso, 1 em caso de erro
  2 | L div 256 | Byte alto de `L`
  3 | L mod 256 | Byte baixo de `L`

| Dica
Se você não quiser sujar as mãos: existe um script Python chamado servertest.py fornecido com o código-fonte GIMP, que pode ser usado como um simples comando de linha shell para o servidor Script-Fu.

10.6. O Submenu “Python-Fu” |  | 11. The “Windows” Menu

Report a bug in GIMP Report a documentation error