Início > Image Magick > Perl + Image Magick: Exemplo 1 (Texto c/ Fundo e Borda)

Perl + Image Magick: Exemplo 1 (Texto c/ Fundo e Borda)

Pessoal, nesse primeiro exemplo creio que vocês já terão uma amostra do que o IM é capaz.

Como objetivo simples, nosso programa deverá mostrar um desenho na tela tendo uma cor de preenchimento tanto para o fundo quanto para a borda, além de uma fonte personalizada! Vamos ver como isto poderá ser feito?

Bem, com o seu editor de texto aberto, vamos ao código inicial que chamará o módulo Magick

use Image::Magick;

Assim como em todos os exemplos posteriores, devemos importar o módulo Image::Magick, para que em seguida, possamos instanciar o objeto.

$novo  = Image::Magick-> new(size=>’250×80′);

Note que já na instanciação, setamos o valor de size, ou seja, o tamanho da imagem. Obs.: Este atributo poderia ter sido definido através do comando $novo->Set(size=>’250×80′);

 O próximo comando inicial é chamado Read que armazenará uma imagem existente, caso for especificado, ou uma cor de fundo, se especificado por xc.
Como em nosso caso queremos definir uma cor de fundo usamos o seguinte código:

$imagem = $novo-> Read(‘xc:#105CB6’);

Assim, teremos um quadro de 250×80 com o fundo azul escuro. Vamos agora preenchê-lo?

Use o comando Annotate, ele anota um texto na imagem:

$imagem=$novo-> Annotate(font      =>”JOKERMAN.TTF”, 
                                          fill      => ‘white’,       
                                          pointsize  => 30,               
                                          undercolor =>’#839E37′,
                                          stroke    =>’#4C6014′,
                                          strokewidth=>’1′,          
                                          gravity    => ‘Center’,      
                                          text      => ‘PerlPoint’,       
)

Nós usamos vários atributos para obter o resultado desejado. Usamos font para definir a fonte, fill para definir sua cor, pointsize para definir o tamanho, undercolor para definir o fundo, stroke para definir a borda, strokewidth para definir a espessura da borda, gravity para definir o alinhamento, e finalmente text para passar o texto a ser exibido. Obs.: Os atributos de Annotate, incluem family, style, stretch, weight, geometry, antialias, x, y, affine, translate, scale, rotate, skew, align, encoding.

 

Agora temos todos os dados de nossa imagem definidos, podemos então setar o cabeçalho

 print “Content-type:image/pngnn”;

Definir a saída binária

binmode STDOUT;

E finalmente escrever a imagem.
Note que quando queremos exibir a imagem na tela, devemos definir como saída, o formato:-

$imagem=$novo->Write( “png:-” );


Photobucket

Resultado: im-exemplo1.cgi


Veja o Código Completo:
(im-exemplo1.cgi)

#!/usr/bin/perl
use Image::Magick;

##########################################################

$format = “png”; # Formato de saída

$texto  = ” PerlPoint “;  # Aqui é o texto que vai aparecer na imagem

$novo  = Image::Magick-> new(size=>’250×80′); # Cria imagem com as dimensões desejadas

$imagem = $novo-> Read(‘xc:#105CB6’); # Define o fundo

$imagem=$novo-> Annotate(font      =>”JOKERMAN.TTF”, # Define a fonte
                                          fill      => ‘white’,               # Cor da fonte
                                          pointsize  => 30,               # Tamanho da fonte
                                          undercolor =>’#839E37′,  # Cor do fundo do texto
                                          stroke    =>’#4C6014′,     # Cor do contorno
                                          strokewidth=>’1′,            # Expessura do contorno
                                          gravity    => ‘Center’,      # Alinhamento
                                          text      => $texto,          # Escreve o texto
);

print “Content-type:image/$formatnn”; # Imprime o cabeçalho com o devido formato
binmode STDOUT;                              # Converte a saída para binario
$imagem=$novo->Write( “$format:-” );  # Mostra a imagem no formato escolhido

##########################################################

  1. Nenhum comentário ainda.
  1. No trackbacks yet.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: