Forum und email

Imagens, Funções de

Introdução

O PHP não esta limitado a criar apenas saída em HTML. Ele também pode ser usado para criar e manipular arquivos de imagem em uma diversidade de formatos, incluindo gif, png, jpg, wbmp, e xpm. E ainda mais convenietemente, o PHP pode enviar streams de saída de imagem diratamente para o browser. Você precisará compilar o PHP com a biblioteca GD de imagens de funções para isto funcionar. O PHP e GD também podem requerer outras bibliotecas, dependendo dos formatos de imagens com os quais você queira trabalhar.

Você pode usar as funções de imagem no PHP para obter o tamanho de imagens JPEG, GIF, PNG, SWF, TIFF and JPEG2000.

Nota: Leia a seção sobre requerimentos sobre como expandir as capacidades de imagem para ler, escrever e modificar imagens e para ler meta dados de fotos tiradas por cameras digitais.

Dependências

Se você tiver a biblioteca GD (disponível em » https://www.libgd.org/) você poderá também criar e manipular imagens.

O formato das imagens que você pode manipilar dependem da versão da GD que você instalou, e de quaisquer outras bibliotecas que o GD possa precisar para acessar estes formatos de imagens. Versões do GD anteriores a gd-1.6 suportam imagens GIF, e não suportam PNG, enquanto versões posteriores a gd-1.6 suportam PNG, não GIF.

Nota: Apartir do PHP 4.3 existe uma versão empacotada da biblioteca GD. Esta versão empacotada tem algumas melhorias como alpha blending, e deve ser usada em preferência da biblioteca externa, já que seu código-fonte é melhor mantido e mais estável.

Você pode querer melhorar o GD para manipular mais formatos de imagens.

Formatos de imagens suportados
Formato da imagens Biblioteca para baixar Notas
gif   Suportado apenas em versões do GD anteriores a gd-1.6. Suporte Apenas para leitura esta disponível com o PHP 4.3.0 e a biblioteca GD empacotada. Suporte para Escrita esta disponível desde o PHP 4.3.9 e PHP 5.0.1.
jpeg-6b » ftp://ftp.uu.net/graphics/jpeg/  
png » https://www.libpng.org/pub/png/libpng.html Apenas suportados em versões do GD maiores do que gd-1.6.
xpm » ftp://metalab.unc.edu/pub/Linux/libs/X/!INDEX.html É provavel que você já tenha esta biblioteca disponível, se o seu sistema tiver um ambiênte X instalado.

Voce pode querer melhorar o GD para lidar com fontes diferentes. As seguintes bibliotecas de fontes são suportadas:

Bibliotes de fontes suportadas
Biblioteca de fonte Download Notas
FreeType 1.x » https://www.freetype.org/  
FreeType 2 » https://www.freetype.org/  
T1lib » ftp://sunsite.unc.edu/pub/Linux/libs/graphics/) Suporte para fontes Type 1.

Se você tiver o PHP compilado com --enable-exif você poderá trabalhar com as informações guardadas nos cabeçalhos de imagens JPEG e TIFF. Deste jeito você poderá ler meta dados gerados por cameras digitais como mencionado acia. Estas funções não precisam da biblioteca GD.

Instalação

Para ativar suporte ao GD, configure o PHP com --with-gd[=DIR], aonde DIR é o diretório de instalação. Para usar a versão recomendada da biblioteca GD que acompanha o PHP (a qual foi embutida pela primeira vez no PHP 4.3.0), use a opção de configuração --with-gd.

No Windows, você irá incluir a DLL do GD2 php_gd2.dll como uma extensão no php.ini. A DLL GD1 php_gd.dll foi removida a partir do PHP 4.3.2. Também note que as funções de imagens truecolor, como imagecreatetruecolor(), requerem GD2.

Nota: Para ativar o suporte a exif no Windows, php_mbstring.dll deve ser carregada antes de php_exif.dll no php.ini.

Para desabilitar o suporte ao GD no PHP 3 adicione --without-gd na sua linha de configuração.

Melhore as capacidades do GD para manipular mais formatos de imagens especificando a opção --with-XXXX na sua linha de configuração do PHP.

Formatos de imagens suportados
Formato de Imagem Opção de Configuração
jpeg-6b Para ativar suporte a jpeg-6b adicione --with-jpeg-dir=DIR.
png Para ativar suporte para png adicione --with-png-dir=DIR. Note que, libpng precisa de zlib library, portanto adicione a opção --with-zlib-dir[=DIR] na sua linha de configuração.
xpm Para ativar suporte a xpm adicione --with-xpm-dir=DIR. Se o configure não for capaz de encontrar as bibliotecas necessárias, você deverá adicionar o caminho até as suas bibliotecas X11.

Nota: Ao compilar o PHP com a libpng, você deve usar a mesma versão que foi ligada com a biblioteca GD.

Melhore as capacidades do GD para lidar com fontes diferentes especificando a opção de configuração --with-XXXX na linha de configuração do PHP.

Bibliotecas de Fontes Suportadas
Biblioteca de Fonte Opção de Configuração
FreeType 1.x Para ativar suporte a FreeType 1.x adicione --with-ttf[=DIR].
FreeType 2 Para ativar suporte a FreeType 2 adicione --with-freetype-dir=DIR.
T1lib Para ativar suporte a T1lib (Type 1 fonts) adicione --with-t1lib[=DIR].
Native TrueType string function Para ativar suporte a native TrueType string function adicione --enable-gd-native-ttf.

Configurações em execução

Não existem configurações especificas para imagens, mas você pode estar interresado nas diretivas da extensão exif.

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

IMG_GIF (integer)
IMG_JPG (integer)
IMG_JPEG (integer)
IMG_PNG (integer)
IMG_WBMP (integer)
IMG_XPM (integer)
IMG_COLOR_TILED (integer)
IMG_COLOR_STYLED (integer)
IMG_COLOR_BRUSHED (integer)
IMG_COLOR_STYLEDBRUSHED (integer)
IMG_COLOR_TRANSPARENT (integer)
IMG_ARC_ROUNDED (integer)
IMG_ARC_PIE (integer)
IMG_ARC_CHORD (integer)
IMG_ARC_NOFILL (integer)
IMG_ARC_EDGED (integer)
IMAGETYPE_GIF (integer)
IMAGETYPE_JPEG (integer)
IMAGETYPE_PNG (integer)
IMAGETYPE_SWF (integer)
IMAGETYPE_PSD (integer)
IMAGETYPE_BMP (integer)
IMAGETYPE_WBMP (integer)
IMAGETYPE_XBM (integer)
IMAGETYPE_TIFF_II (integer)
IMAGETYPE_TIFF_MM (integer)
IMAGETYPE_IFF (integer)
IMAGETYPE_JB2 (integer)
IMAGETYPE_JPC (integer)
IMAGETYPE_JP2 (integer)
IMAGETYPE_JPX (integer)
IMAGETYPE_SWC (integer)

Exemplos

Example#1 Criação de PNG com o PHP

<?php
    header
("Content-type: image/png");
    
$string $_GET['text'];
    
$im     imagecreatefrompng("images/button1.png");
    
$orange imagecolorallocate($im22021060);
    
$px     = (imagesx($im) - 7.5 strlen($string)) / 2;
    
imagestring($im3$px9$string$orange);
    
imagepng($im);
    
imagedestroy($im);
?>
Este exemplo deve ser usado em uma página com uma tag como esta: <img src="button.php?text=text">. O script button.php acima pega a string "text" e coloca-a no topo de uma imagem base que neste caso é "images/button1.png" e mostra a imagem resultante. Este é um meio conveniente de evitar desenhar uma nova imagem de botão a cada vez que você quiser modificar o texto do botão. Com este metodo ele é dinamicamente gerado.

Índice