Inkscape Brasil

Siga-nos no Twitter Siga-nos no Identi.ca
Versão Estável 0.91 Baixe Agora! Chat!
Tópicos Pais: Extensoes

Como Fazer Extensões

wip em construção

Existem basicamente 3 tipos de extensões para o Inkscape:

Criando Efeitos

Os efeitos são automatizações de processos para transformar ou criar elementos SVG e como qualquer extenção depende de pelo menos 2 arquivos: {efeito}.inx e {efeito}.{ext}

O arquivo {efeito}.inx é o que define a extensão para o Inkscape e deve seguir essa estrutura: Saiba mais sobre arquivos INX

 <inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
   <_name>{Nome Amigável da Extensão}</_name>
   <id>{org.domain.sub-domain.extension-name}</id>
     <dependency type="executable"
                 location="[extensions|{outro local}]">{arqivo dependencia}</dependency>
     <param name="{nome-do-argumeto}" type="[int|string|boolean|...]"
            min="{number}" max="{number}"
            _gui-text="{Nome Amigável do Argumento}">{valor padrão}</param>
   <effect needs-live-preview="[true|false]">
     <object-type>[all|{tipo do elemento}]</object-type>
     <effects-menu>
       <submenu _name="{Nome do Grupo da Extensão}"/>
     </effects-menu>
   </effect>
   <script>
     <command reldir="extensions"
              interpreter="[python|perl|bash|{outro}]">{program}.{ext}</command>
   </script>
 </inkscape-extension>

Saiba mais sobre arquivos INX

O arquivo {efeito}.{ext} é um executável escrito em qualquer linguagem e deve implementar as seguintes funcionalides:

Vamos entender isso melhor...

Executando Extencoes do Inkscape Ao iniciar o Inkscape busca por arquivos INX no diretório compartilhado de extensões e no diretórios de extensões do usuário. Cada efeito tem suas dependencias analisadas e se não houver falta, são adicionados na lista de efeitos. (Saiba qual é o diretório compartilhado com o comando inkscape -x e o diretório do usuário fica em {seu home}/.inkscape/extensions/.)

Quando o usuário clica em um efeito o Inkscape cria uma janela de dialogo (seguindo as definições do INX) permitindo que o usuário adicione valores personalizados aos argumentos. Ao clicar em Ok o Inkscape salva o estado atual do SVG em um arquivo temporário para que o executável do efeito possa lê-lo e chama este enviando-lhe os seguintes argumento:

Com essas informações o executavel poderá fazer o seu trabalho independente do inkscape, ou seja, também pode ser usado via linha de comando quando for interessante, ou por outra aplicação qualquer.

Quando completa seu trabalho o executável escreve o SVG modificado na saida padrão, que é lida pelo Inkscape. Se o SVG não contiver erros, ele sobrepõe o estado atual para o usuário continuar seu trabalho.

O que mais eu devo saber?

Além de uma boa noção de programação (não precisa se um expert), é preciso conhecer o padrão SVG na unha, ou seja, mexer no XML mesmo. Você vai se sentir um pouco como o pessoal de Matrix, vendo códigos na tela, mas percebendo círculos, degradês, curvas beizier, ... wink

Onde saber sobre SVG? Vá na fonte. A origem de tudo: http://www.w3.org/TR/SVG/
Não há lugar melhor para conhecer formatos que nas especificações da W3C, infelizmente nem tudo está no escopo deles nem segue o exemplo deles. Ah! E está em inglês.

Mais sobre extensões:

Também é possível interagir com o Inkscape pela Linha de Comando. Outro bom recurso para automação.

Codificando em algumas linguagens



create new tag
rev 11 em 12 Nov 2013 por AurelioAHeckert
Editar Anexar Versões Mais...

Todo material do sítio Inkscape Brasil é propriedade do grupo Inkscape Brasil e pode ser reproduzido livremente, desde que permaneça livre e a fonte seja citada, seguindo os termos da licença Creative Commons (by-sa).

Inkscape é um Software Livre, distribuido sobre Termos GNU-GPL.

eXTReMe Tracker
Inkscape - Open Source vector graphics editor SVG - Scalable Vector Graphics TableLess - Coerência, Simplicidade e Acessibilidade no código HTML Esse documento é XHTML 1.0 Valido! Esse documento contém CSS-2 Valido! Debian - GNU/Linux TWiki - Ambiente Web Colaborativo Colivre - Cooperativa de Tecnologias Livres