WideImage – Classe PHP que manipula Imagens

Redimensionar, recortar, marca d'água, escala de cinza, inverter cores.


Nesse post, vou mostrar como a classe WideImage pode ajudar com a manipulação de imagens. Quem nunca precisou manipular uma imagem? Todos sabem que é uma tarefa comum em um website, e que não é muito agradável, mas com a classe WideImage facilita bastante.

Com o WideImage pode-se:

  • Redimensionar imagens
  • Inserir marca d´agua
  • Converter imagem em escala de cinza
  • Converter imagem para negativa
  • Cortar imagem
  • Entre outras…

A utilização da classe requer alguns pré-requisitos, como, PHP 5.2 ou superior, GD2 do PHP ativado (que na versão 5 do PHP já vem ativado por padrão) e memória suficiente para carregar os arquivos de imagens.

  • Baixe o WideImage no link
  • Após baixar o arquivo WideImage, salve-o em uma pasta dentro do seu projeto, neste caso, será nomeado como “_wideimagem”, mas nada impede de escolher outro nome, portanto que lembre na hora de requerer a classe.
  • O código a seguir mostrará como redimensionar e salvar uma imagem:
<?php
 // Chama o arquivo com a classe WideImage
 require('_wideimage/WideImage.php');
 // Carrega a imagem a ser manipulada
 $image = WideImage::loadFromFile('_imagem/img.jpg');
 // Redimensiona a imagem
 $image = $image->resize(400, 300);
 // Salva a imagem em um arquivo
 $image->saveToFile('_imagem/imgred.png');
 // Mostra a imagem na tela
 $image->output('jpg', 90);
?>

Existem três tipos de redimensionamento, inside, outsidefill:

  • Inside — Redimensiona a imagem para caber na largura e altura especificada, não distorcendo a imagem.
  • Outside — Redimensiona a imagem para preencher a largura e altura especificada, não distorcendo a imagem.
  • Fill — A imagem será redimensionada por completo, distorcendo a imagem.

No código anterior modifique a linha onde é redimensionado a imagem e coloque a seguinte linha.

$image = $image->resize(400, 300,'inside');

Altere das três formas para ver a diferença entre insideoutrside e fill.

Cortando a imagem

Existe um método na classe WideImage muito legal, o crop(), que tem quatro parâmetros, coordenada X onde o corte se inicia, coordenada Y onde o corte se inicia, largura e altura do corte.
Veja o código de exemplo:

<?php
// Chama o arquivo com a classe WideImage
require('_wideimage/WideImage.php');
// Carrega a imagem a ser manipulada
$image = WideImage::loadFromFile('_imagem/img.jpg');
// faz o recorte da imagem
$image = $imagecrop->crop(0,0,247, 190);
// Salva a imagem em um arquivo
$imagecrop->saveToFile('_imagem/imgred.png');
// Mostra a imagem na tela
$imagecrop->output('jpg', 90);
?>

Na maioria dos casos ninguém corta no canto da imagem, com isso vemos o poder do crop().

Altere a linha onde recorta a imagem pelo código abaixo:

$image = $imagecrop->crop('50% - 50', '50% -40',247, 190);

Se a imagem for muito grande, pode-se pegar um pedaço da imagem. Mas como fazer isso? Usando a função resize() em conjunto com o crop().

Adicione a seguinte linha no arquivo:

$image = $image->resize(100, 80);
$image = $imagecrop->crop('50% - 50', '50% -40',100, 80);

OBS: lembrando que aqui nos códigos são somente exemplos, você terá que pegar a dimensão correta de suas imagens.

Marca d'água (watermark)

Para aplicar marca d'água em uma imagem com a classe WideImage, basta usar o método merge().

O método merge() da classe WideImage tem quatro parâmetros, primeiro a imagem que irá ser a marca d'água, segundo posição X, terceiro posição Y e o quarto opacidade da imagem.

Veja abaixo o código:

<?php
    $img = wideimage::load('_imagem/img.jpg');
    $marca = wideimage::load('_imagem/img2.jpg');
    $novaImagem = img->merge($marca, 10, 10, 30);
    $novaImagem->saveToFile('_imagem/ImagemMarca.jpg');
    $novaImagem->output('jpg', 90);
?>

Note que a imagem ficou com uma marca d'água.
Mais informações sobre a classe podem ser vistas em http://wideimage.sourceforge.net/

Gostou do artigo? Ficou com dúvidas? Tem outras sugestões?
Deixe um comentário.
Forte Abraço e até a próxima!

Tags: Marca D'água, negativo, crop, recortar, php, Resize, manipulação, wideimage, imagem, redimensionar
Via www.ideiasprogramadas.com.br

Total de comentários: 0
avatar