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.
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:
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.
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.
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($im, 220, 210, 60);
$px = (imagesx($im) - 7.5 * strlen($string)) / 2;
imagestring($im, 3, $px, 9, $string, $orange);
imagepng($im);
imagedestroy($im);
?>
Índice
- gd_info — Obtém informações sobre a biblioteca GD instalada atualmente
- getimagesize — Obtém o tamanho de uma imagem
- image_type_to_extension — Get file extension for image type
- image_type_to_mime_type — Obtém o Mime-Type para um tipo de imagem retornado por getimagesize, exif_read_data, exif_thumbnail, exif_imagetype
- image2wbmp — Envia uma imagem para o browser ou arquivo
- imagealphablending — Set the blending mode for an image
- imageantialias — Indica se as funções de antialias devem ser usadas ou não
- imagearc — Desenha um elipse parcial
- imagechar — Desenha um caractere horizontalmente
- imagecharup — Desenha um caractere verticalmente
- imagecolorallocate — Aloca uma cor para uma imagem
- imagecolorallocatealpha — Aloca cor para uma imagem
- imagecolorat — Retorna o índice da cor de um pixel
- imagecolorclosest — Retorna o índice da cor mais próxima da cor especificada
- imagecolorclosestalpha — Retorna o índice da cor mais próxima da cor especificada + transparencia
- imagecolorclosesthwb — Get the index of the color which has the hue, white and blackness nearest to the given color
- imagecolordeallocate — Desaloca uma cor para uma imagem
- imagecolorexact — Retorna o índice da cor especificada
- imagecolorexactalpha — Retorna o índice da cor especificada + transparencia
- imagecolormatch — Faz com que a versão das cores da paleta sejam mais próximas da versão truecolor
- imagecolorresolve — Retorna o índice da cor especificada ou a alternativa mais próxima possível
- imagecolorresolvealpha — Retorna o índice da cor especificada + transparência ou a sua alternativa mais próxima
- imagecolorset — Set the color for the specified palette index
- imagecolorsforindex — Retorna as cores de um índice
- imagecolorstotal — Retorna o número de cores na paleta de uma imagem
- imagecolortransparent — Define uma cor como tansparente
- imageconvolution — Apply a 3x3 convolution matrix, using coefficient and offset
- imagecopy — Copia parte de uma imagem
- imagecopymerge — Copia e combina uma parte de uma imagem
- imagecopymergegray — Copy and merge part of an image with gray scale
- imagecopyresampled — Copy and resize part of an image with resampling
- imagecopyresized — Copy and resize part of an image
- imagecreate — Cria uma nova imagem baseada em paleta
- imagecreatefromgd2 — Cria uma nova imagem apartir de um arquivo GD2 ou URL
- imagecreatefromgd2part — Cria uma nova imagem apartir de uma parte de um arquivo GD ou URL
- imagecreatefromgd — Cria uma nova imagem apartir de um arquivo GD ou URL
- imagecreatefromgif — Cria uma nova imagem a partir de um arquivo ou URL
- imagecreatefromjpeg — Cria uma nova imagem a a partir de um arquivo ou URL
- imagecreatefrompng — Cria uma nova imagem a apratir de um arquivo ou URL
- imagecreatefromstring — Cria uma nova imagem a apartir da imagem na string
- imagecreatefromwbmp — Cria uma nova imagem a apratir de um arquivo ou URL
- imagecreatefromxbm — Cria uma nova imagem a apratir de um arquivo ou URL
- imagecreatefromxpm — Cria uma nova imagem a apratir de um arquivo ou URL
- imagecreatetruecolor — Cria uma nova imagem true color
- imagedashedline — Desenha uma linha pontilhada
- imagedestroy — Destroi uma imagem
- imageellipse — Desenha um elipse
- imagefill — Flood fill
- imagefilledarc — Draw a partial ellipse and fill it
- imagefilledellipse — Desenha um elipse prenchido
- imagefilledpolygon — Desenha um poligono prenchido
- imagefilledrectangle — Desenha um retângulo prenchido
- imagefilltoborder — Flood fill to specific color
- imagefilter — Applies a filter to an image
- imagefontheight — Retorna a altura da fonte
- imagefontwidth — Retorna a largura da fonte
- imageftbbox — Give the bounding box of a text using fonts via freetype2
- imagefttext — Escreve texto na imagem usando fontes FreeType 2
- imagegammacorrect — Apply a gamma correction to a GD image
- imagegd2 — Envia uma imagem GD2
- imagegd — Envia a imagem GD para o browser ou um arquivo
- imagegif — Envia uma imagem para o browser ou arquivo
- imagegrabscreen — Captures the whole screen
- imagegrabwindow — Captures a window
- imageinterlace — Ativa ou desativa o entrelaçamento
- imageistruecolor — Indica quando uma imagem é uma imagem truecolor
- imagejpeg — Envia a imagem para o borwser ou arquivo
- imagelayereffect — Set the alpha blending flag to use the bundled libgd layering effects
- imageline — Desenha uma linha
- imageloadfont — Carrega uma nova fonte
- imagepalettecopy — Copia a paleta de uma imagem para a outra
- imagepng — Envia uma imagem PNG para o browser ou para um arquivo
- imagepolygon — Desenha um poligono
- imagepsbbox — Give the bounding box of a text rectangle using PostScript Type1 fonts
- imagepsencodefont — Change the character encoding vector of a font
- imagepsextendfont — Extend or condense a font
- imagepsfreefont — Libera a memória usada por uma fonte PostScript Type
- imagepsloadfont — Carrega uma fonte PostScript Type 1 a partir de um arquivo
- imagepsslantfont — Slant a font
- imagepstext — Draws a text over an image using PostScript Type1 fonts
- imagerectangle — Desenha um retângulo
- imagerotate — Gira uma imagem com o ângulo dado
- imagesavealpha — Define a opção para salvar a informação completa do alpha channel (ao invés de a transparencia de uma cor só) quando estiver salvando imagens PNG.
- imagesetbrush — Set the brush image for line drawing
- imagesetpixel — Define um único pixel
- imagesetstyle — Set the style for line drawing
- imagesetthickness — Define a espessura para o desenho de linhas
- imagesettile — Set the tile image for filling
- imagestring — Desenha uma string horizontalmente
- imagestringup — Desenha uma string verticalmente
- imagesx — Obtem a largura da imagem
- imagesy — Obtém a altura da imagem
- imagetruecolortopalette — Converte uma imagem true color para uma imagem de paleta
- imagettfbbox — Retorna uma caixa com o limites de um texto usando fontes TrueType
- imagettftext — Escreve texto na imagem usando fontes TrueType
- imagetypes — Retorna os tipos de imagens suportados por esta instalação do PHP
- imagewbmp — Envia uma imagem para o browser ou arquivo
- imagexbm — Output XBM image to browser or file
- iptcembed — Embute dados binários IPTC em uma imagem JPEG
- iptcparse — Interpreta um bloco IPTC https://www.iptc.org/ binário em tags simples.
- jpeg2wbmp — Converte um arquivo de imagem JPEG para um arquivo de imagem WBMP
- png2wbmp — Converte um arquivo de imagem PNG para um arquivo de imagem WBMP