Trabalho com imagens em PHP: visão geral das bibliotecas GD e Imagick
O processamento de imagens é uma das tarefas comuns no desenvolvimento web. No PHP, existem duas bibliotecas principais para trabalhar com gráficos: GD (integrada) e Imagick (wrapper sobre ImageMagick). Neste artigo, abordaremos suas funcionalidades, instalação e exemplos práticos.
Biblioteca GD
GD é uma extensão padrão do PHP, disponível na maioria das hospedagens. Permite criar, modificar e salvar imagens nos formatos JPEG, PNG, GIF, WEBP.
Instalação
No Ubuntu/Debian:
sudo apt install php-gdsudo systemctl restart apache2No Windows — descomente a linha extension=gd no php.ini.
Funções principais do GD
imagecreatefromjpeg(),imagecreatefrompng()— carregar imagemimagesx(),imagesy()— obter largura e alturaimagecopyresampled()— redimensionar com reamostragemimagefilter()— aplicar filtros (desfoque, negativo)imagettftext()— texto com fonte TrueTypeimagejpeg(),imagepng()— salvar o resultado
Exemplo 1: Redimensionar imagem
<?php$src = 'photo.jpg';$dest = 'thumb.jpg';$newWidth = 300;
// Carregar imagem original$img = imagecreatefromjpeg($src);$width = imagesx($img);$height = imagesy($img);
// Calcular nova altura proporcionalmente$newHeight = intval($height * $newWidth / $width);
// Criar nova imagem$thumb = imagecreatetruecolor($newWidth, $newHeight);imagecopyresampled($thumb, $img, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);
// Salvarimagejpeg($thumb, $dest, 85);imagedestroy($img);imagedestroy($thumb);echo "Pronto: $dest";?>Exemplo 2: Aplicar marca d'água
<?php$mainImg = imagecreatefromjpeg('background.jpg');$watermark = imagecreatefrompng('logo.png');
// Obter dimensões$mW = imagesx($mainImg);$mH = imagesy($mainImg);$wW = imagesx($watermark);$wH = imagesy($watermark);
// Posição — canto inferior direito com margem de 10px$dstX = $mW - $wW - 10;$dstY = $mH - $wH - 10;
// Copiar marca d'água com transparênciaimagecopy($mainImg, $watermark, $dstX, $dstY, 0, 0, $wW, $wH);
// Salvarimagepng($mainImg, 'result.png');imagedestroy($mainImg);imagedestroy($watermark);?>Biblioteca Imagick
Imagick é um wrapper orientado a objetos sobre a poderosa ferramenta ImageMagick. Suporta mais de 200 formatos, transformações complexas, trabalho com PDF, animação e perfis de cores.
Instalação
sudo apt install imagemagick php-imagicksudo systemctl restart apache2Verificar instalação:
<?php phpinfo(); ?>Procure pela seção imagick.
Principais classes e métodos
Imagick— classe principal para trabalhar com imagensreadImage()— carregar arquivoresizeImage()— redimensionarcropImage()— cortarcompositeImage()— sobrepor imagensblurImage()— desfocarsetImageFormat()— converter formato
Exemplo 3: Redimensionamento e corte (crop)
<?php$image = new Imagick('photo.jpg');
// Redimensionar para 800x600, mantendo proporções$image->resizeImage(800, 600, Imagick::FILTER_LANCZOS, 1, true);
// Cortar a parte central de 400x400$width = $image->getImageWidth();$height = $image->getImageHeight();$x = ($width - 400) / 2;$y Também na biblioteca
Envio de SMS em Swift (iOS/macOS): API da biblioteca MessageUI
Geração de PDF em PHP: melhores bibliotecas e exemplos de código
GraphQL Java: Guia Completo da Biblioteca para Criação de APIs em Java
Geolocalização e Mapas em Go (Golang): Bibliotecas e Exemplos
ts-mockito para TypeScript: guia completo com exemplos