quinta-feira, 16 de julho de 2009

AS3 SVG Renderer

Primeiramente, gostaria de dizer que não tenho experiência com blogs, então me perdoem pela falta de jeito. Espero que aos poucos eu vá me acostumando.

Estou criando esse blog para difundir conhecimentos e idéias a respeito de tecnologia, principalmente ASP.NET, Flash, Flex, AS3, bem como divulgar alguns projetos.

Aproveitando o primeiro post, vou falar a respeito de um projeto open-source que mantenho: AS3 SVG Renderer. Uma bilbioteca para renderização de SVG (Scalable Vectorial Graphics) em tempo real em AS3, que pode ser utilizada no Flash ou Flex.

O projeto está hospedado no google code: http://code.google.com/p/as3svgrendererlib/

Comecei a me envolver com a renderização de SVG para utilização em um projeto, com mapas da Universidade Vale do Rio Doce. Ao buscar soluções que permitissem exibir SVG no Flash dinamicamente, me deparei com a biblioteca AS3 SVG Renderer, inicialmente desenvolvida por Charles Dietrich.

Embora ainda estivesse em um estado inicial, a bilbioteca não estava sendo continuada, devido ao envolvimento do Charles Dietrich em outros projetos. De acordo com minhas necessidades, adicinei novas funcionalidades a bliboteca, expandindo a compatiblidade com o formato SVG. Ao submeter minhas modificações ao mantenedor da biblioteca, ele convidou-me a dar continuidade à mesma.

Hoje considero a biblioteca em um estado muito satisfatório, suportando muitas das características do SVG.


Exemplos de imagens geradas com a bilbioteca.

Caso queira alguma explicação sobre a utlização da bilbioteca, dar sugestões, pedir correções, discutir idéias, e outros, deixe uma mensagem no blog ou mande um e-mail.

Gostaria de ser informado a respeito de projetos que utilizem a biblioteca. Saber o quão útil a biblioteca é para outras pessoas, é um forte fator de motivação para dar continuidade à mesma.

Abraços.

9 comentários:

  1. Pedro SacramentoAug 28, 2009 10:03 AM
    Lucas, você conhece o projeto SVGWeb? Creio que seria muito bom voce participar dele, tem tudo a ver com esse seu projeto:

    http://code.google.com/p/svgweb/
    ResponderExcluir
  2. Lucas LorentzSep 8, 2009 07:15 AM
    Pedro: Conheço sim, é uma iniciativa muito interessante. Ainda não pude testá-lo. Mas agora que comentou vou dar uma olhada mais detalhada. Grato.
    ResponderExcluir
  3. FranciscoMay 8, 2010 06:50 AM
    Olá,

    A biblioteca é muito útil, sim, obrigado. E gostaria de colaborar inserindo o recurso de carregamento de imagens (tipo JPG, etc.) de um SVG. Se possível passar uma dica de como proceder, colaboraria. Estarei tentando e analisando.

    AT+!
    ResponderExcluir
  4. Lucas LorentzMay 23, 2010 03:29 PM
    Francisco,

    A biblioteca já carrega imagens. Tanto embutidas no SWF, como imagens externas com a URL referenciada. Visite o site da biblioteca, poste algum problema que tiver lá.

    Acho ótimo você querer aprimorar a biblioteca, mas ultimamente não estou com tempo para passar muitas informações.

    Recomendo que baixe o código mais atual no SVN, dê uma estudada no código, foque nas classes dentro do package "display". Que são classes novas, um framework de objetos visuais, que representam o documento SVG. Possuem mecanismo de renderização adiada, eventos, e etc. É algo tipo o degrafa para o flex, mas comecei a pouco tempo essa nova vertente, então ainda tem muita coisa interessante para fazer, como geração do XML do SVG a partir do display, e etc.
    ResponderExcluir
  5. FranciscoMay 30, 2010 07:14 AM
    Este comentário foi removido pelo autor.
    ResponderExcluir
  6. FranciscoMay 30, 2010 07:22 AM
    Olá,

    Tentei renderizar este arquivo, que faz uso de um PNG (http://www.carto.net/papers/svg/samples/canvas.svg) e não funcionou; só renderiza o vetor.

    Tentei com outros arquivos e usando JPEG e também não exibiu. =(

    São as tags SVG . Darei uma olhada no código, obrigado, Abs.
    ResponderExcluir
  7. FranciscoMay 31, 2010 05:34 AM
    Olá, desconsidere o comentário anterior. Adicionei dois métodos (um em SVGRenderer.as e outro em SVGParser.as) para renderizar imagens (JPEG PNG etc) dum arquivo SVG. Os métodos são visitImage e são de tags tipo < image >. Acho que seria interessante acrescentar estes métodos ao código, e gostaria de saber como proceder (é via site do Google Code?).

    Abraços! :-)
    ResponderExcluir
  8. Lucas LorentzJun 20, 2010 11:38 AM
    Desculpe a demora Francisco.

    Pode sugerir no google code mesmo. Mas As classes SVGRenderer e SVGParser estão ultrapassadas, as últimas melhorias estão sendo feitas apenas nas classes do namespace com.lorentz.svg.display, talvez a funcionalidade funcione utilizando elas. Há um exemplo chamado testDisplay.fla, que mostra como utilizar as novas classes.

    Boa sorte, qualquer dúvida me pergunte por e-mail, não estou olhando os comentários do blog constantemente, nem criando novos posts.

    Abraço
    ResponderExcluir
  9. Andre LuizNov 10, 2010 12:54 PM
    Olá Lucas. Eu comecei a usar a biblioteca e estou com a seguinte dificuldade. Após carregar o SVG num SVGDocument, eu não consigo utilizar as propriedades WIDTH e HEIGHT. O objeto desaparece da tela. Tentei utilizar o SVGElement que também não aceita essas propriedades. Eu preciso redimensionar essas imagens. Você tem alguma dica para me dar ?
    ResponderExcluir