Ir para o conteúdo
ou

Software livre Brasil

Tela cheia
 Feed RSS

Porão do Trialforce

27 de Maio de 2009, 0:00 , por Software Livre Brasil - | Ninguém está seguindo este artigo ainda.

Um blog sobre programação e arte, o conteúdo original pode ser acessado em trialforce.nostaljia.eng.br


PHPSVG Biblioteca de edição/criação de SVG usando PHP Orientado a Objetos

10 de Março de 2011, 0:00, por Software Livre Brasil - 0sem comentários ainda

OPA!

Baseado no artigo sobre edição de SVG utilizando PHP criei uma pequena lib para edição de arquivos SVG usando o php.

A lib esta bem documentada, tem suporte a edição de svg compactado ou não, suporte a exportação para png, jpg e gif, bem como faz output para o browser.

A biblioteca só se utiliza de libs do php para fazer isso não é necesário instalar nenhum programa extra no servidor.

Deêm uma olhada em

http://code.google.com/p/phpsvg/

A imagem abaixo não tem nada a ver com o post, mas como ele tinha ficado pequeno resolvi por uma imagem. Mario Kart pra Wii é um jogo muito bom!!



Editando SVG via programação usando PHP (Orientado a objetos)

4 de Março de 2011, 0:00, por Software Livre Brasil - 0sem comentários ainda

SVG é um tipo de imagem vetorial, formato base do programa Inkscape, suportado também pelos programas da Adobe e pela Corel.

Este tipo de imagens é multi propósito, tem muitos fins, mas é basicamente um xml, um documento de texto com uma sintaxe específica.

Abaixo segue o exemplo do código fonte de um svg mínimo, incluindo um único retângulo. Note como a estrutura básica é muito simples, mas é importante notar que o SVG possibilita muito mais.

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns="http://www.w3.org/2000/svg">
 <width>210mm</width>
  <height>297mm</height>
  <version>1.1</version>
  <g>
      <rect x="100" y="50" width="30" height="40" style="fill: rgb(242, 242, 242); stroke: rgb(225, 161, 0);"/>
  </g>
</svg>

O código acima gera essa imagem abaixo, como citado um exemplo simplório.

exemplo de documento svg

exemplo de documento svg

Agora vamos aprender a criar esse desenho, esse mesmo código utilizando php puro (que por sinal é muito completo), utilizando-se dos poderes da orientação a objetos.

Para iniciar precisamos criar o objeto leitor de xml. O PHP disponibiliza a classe SimpleXMLELement que lida com XML de forma muito transparente. Maiores informações sobre o SimpleXmlElement podem ser encontradas no endereço http://br3.php.net/manual/pt_BR/class.simplexmlelement.php.

Vale citar que o PHP tem funcionalidades prontas para lidar com muitos tipos/formatos de arquivos e situações, antes de sair implementando coisas a vontade, verifique se o php já não possui algo pronto nesse sentido, não reinvente a roda.

O código abaixo então cria o nosso svg, sem nenhum conteúdo ou propriedade necessária.

$svg = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg></svg>');

Como segundo passo precisamos definir algumas propriedades básicas necessárias para a intepretação de um svg.

Tamanhos da página, largura e altura, neste caso o formato A4.

//tamanho da página
$svg->width = '210mm'; //largura
$svg->height = '297mm'; //altura

Versão do SVG, como padrão 1.1

$svg->version = '1.1';

Estilo do SVG, o xmlns, dessa forma definimos que o nosso documento utiliza essa sintaxe definida pela W3c.

$svg->addAttribute('xmlns', 'http://www.w3.org/2000/svg');

Após isso precisamos cria o nosso objeto de desenho, ou objeto gráfico (graphic), no SVG ele é chamado simplesmente G.

$g = $svg->addChild('g');

De posse de nosso G (não confunda com ponto G) podemos adicionar diversos elementos gráficos nele, neste artigos trataremos a adição de um retângulo.

$rect = $g->addChild('rect');

Agora que temos nosso objeto retângulo, definimos o seu tamanho e posição:

$rect->addAttribute('x',100); //posição x
$rect->addAttribute('y', 50); //posição y
$rect->addAttribute('width', 30); //largura
$rect->addAttribute('height', 40); //altura

Então definimos seu estilo, fill é a cor de preencimento e stroke é a cor do contorno, nesse caso utilizamos o sistema hexadecimal de definições de cores.

$rect->addAttribute('style','fill:#f2f2f2;stroke:#e1a100;');

Nosso SVG esta pronto, só precisamos jogar ele para o browser, neste caso precisamos definir o cabeçalho (header) para que o browser entenda que estamos “echoando” um SVG e não uma página html normal.

header('Content-type: image/svg+xml');
echo $svg->asXML();

Abaixo então está o código completo de geração do nosso SVG.

<?php
$svg = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"
standalone="no"?><svg></svg>');
//tamanho da página
$svg->width = '210mm';
$svg->height = '297mm';
//versão do svg 1.1 é padrão
$svg->version = '1.1';
//estilo do svg, padrão
$svg->addAttribute('xmlns', 'http://www.w3.org/2000/svg');
//g de graphics é onde os objetos visuais são adicionais
$g = $svg->addChild('g');
//cria o retangulo
$rect = $g->addChild('rect');
//define seus attributos
$rect->addAttribute('x',100);
$rect->addAttribute('y', 50);
$rect->addAttribute('width', 30);
$rect->addAttribute('height', 40);
//estilo de fill=preenchimento stroke = linha
$rect->addAttribute('style','fill:#f2f2f2;stroke:#e1a100;');
//define o cabeçalho do arquivo, para que o browser entenda que é um svg e não um xml normal
header('Content-type: image/svg+xml');
echo $svg->asXML();
?>

Vale citar, que neste exemplo criamos um SVG simples praticamente do zero, mas podemos abrir um SVG que já esteja pronto no nosso HD, para isto utilizamos a função file_get_contents, conforme exemplo abaixo.

$svg = new SimpleXMLElement( file_get_contents('meuRetangulo.svg' );

Dessa forma o PHP faz a leitura de nosso documento SVG e o carrega já como objeto para a variável $svg. Com base nisto, podemos obter o G deste documento.

$g = $svg->g;

Com nosso G em mãos estamos prontos para adicionar um retângulo ou o que quer que quisermos ao nosso SVG.

Para conhecer todas as propriedades de um SVG podemos utilizar o endereço http://www.w3.org/TR/SVG/, que tem a espeficicação do projeto, mas também podemos desenhar alguma coisa no Inkscape e ver como fica o código fonte.

Bom desenhos para todos nós!

 

 



Video da engine de jogos feita em java Nostaljia

3 de Fevereiro de 2011, 0:00, por Software Livre Brasil - 0sem comentários ainda

Ola!

Segue abaixo 2 videos do que trabalhamos os últimos dias na engine Nostaljia.

Estamos neste momento melhorando o sistema de som para que flua de forma mais natural e integrada a engine como um todo.

Game do Alpha do Shooter Chrysalis:

Video técnico mostrando sistema de colisão Pixel-Perfect.

Visitem www.nostaljia.eng.br para maiores informações.



Criando transparências com GIMP – Limpando o fundo da imagem (Video Tutorial)

6 de Janeiro de 2011, 0:00, por Software Livre Brasil - 0sem comentários ainda

Gimp é um ótimo programa de edição de imagens, suporta vários formatos de arquivo e tem muitas funcionalidades, bem como suporta a instalação de diversos plugins, infelizmente as pessoas não o conhecem ou tem dificuldades básicas em suas utilização.

A fim de diminuir as dificuldades em relação ao conhecimento dos princípios básicos do GIMP, este video tutorial visa explicar conceitos de transparência, canal alpha e borrachas, e tratar levemente sobre camadas.

I hope you enjoy!



Aumentar volume de som usando Audacity sem perder qualidade

4 de Janeiro de 2011, 0:00, por Software Livre Brasil - 0sem comentários ainda

Muitos podem não conhecer, mas Audacity é um programa de edição de som muito útil e não custa nada, funciona perfeitamente em Windows, Linux e outros sistemas operacionais.

Quando precisamos alterar um pouco algum arquivo de som, separar uma parte de uma música, aumentar o diminuir volume, sempre ficamos na dúvida de qual programa utilizar, neste momento surge o Audicity, um programa bom, estável e com bastante recursos.

Eventualmente técnicos de som podem achar que faltam recursos no Audacity em relação ao Cool Edit por exemplo, acontece que a edição multi-pistas encontradas no Cool Edit não é feita pela Audacity para isso existem outros programas como o LMMS ou Rosegarden.

Exemplificando a facilidade da interface do Audacity iremos abrir um arquivo de som, vale notar que o programa também abre os sons embutidos em vídeos. Os formatos suportados estão diretamente relacionados aos formatos suportados pelo seu sistema operacional, citando por exemplo a instalação de codecs de audio e vídeo.

Então vamos em Arquivo -> abrir, como de praxe para abrir o arquivo video.ogv.

audacity

audacity

Caso não consiga abrir o video no Audacity, por algum motivo você pode utilizar o comando abaixo (no Linux, apesar de ser possível instalar no Windows também) para extrair um arquivo mp3 do seu vídeo.

fmpeg -i video.ogv audio.mp3

Com o arquivo aberto utilizamos CTRL +A para selecionar tudo o audio, então aplicamos:

Efeitos -> Amplificar

Então selecione somente a parte onde tem ruído (o barulho que quer retirar)
Efeitos -> Remover ruído —- Perceber perfil de audio
Selecione tudo
Efeitos -> Remover ruído —- OK

Pronto, nosso som esta pronto para públicação!

É só exportar o arquivo agora!

Arquivo -> Exportar

Como funciona a remoção de ruídos?

Quando o sistema “percebe o perfil de audio” ele armazena o trecho selecionado como informação de ruído, é importante selecionar uma parte do som onde só exista o ruído.

No segundo momento onde vamos realmente aplicar o efeito, o sistema passa por todo o áudio comparando o seu ruído com áudio oferece e remove o que encontrar de semelhante, FUNCIONA MUITO BEM!

O Audacity ainda oferece sistema para remoção de voz, mas isso é assunto para outro artigo!!



Tags deste artigo: php gimp programação desenvolvimento pixel art