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.
Se você tiver a biblioteca GD (disponível em http://www.boutell.com/gd/) 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.
Tabela 1. 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. | |
jpeg-6b | ftp://ftp.uu.net/graphics/jpeg/ | |
png | http://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:
Tabela 2. Bibliotes de fontes suportadas
Biblioteca de fonte | Download | Notas |
---|---|---|
FreeType 1.x | http://www.freetype.org/ | |
FreeType 2 | http://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.
Nota: O PHP não precisa de nenhum módulo adicional para o módulo exif.
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 GD2 php_gd2.dll como uma extensão php.ini. A DLL GD1 php_gd.dll foi removido no PHP 4.3.2. Também note que as funções de imagens truecolor preferenciais, como imagecreatetruecolor(), requerem o GD2.
Para ativar o suporte a exif no Windows, php_mbstring.dll deve ser carregado 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.
Tabela 3. 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. |
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.
Tabela 4. 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. |
O comportamento dessas funções podem ser modificado pelas configurações do php.ini.
Exif suporta automaticamente a conversão para Unicode e JIS dos comentários do usuário quando o módulo mbstring esta disponível. Isto é feito inicialmente decodificando o comentário usando o conjunto de caracteres especificado. O resultado é então codificado usando outro conjunto de caracteres que deve ser igual a sua saída HTTP.
Tabela 5. Opções de Configuração Exif
Nome | Padrão | Modificável |
---|---|---|
exif.encode_unicode | "ISO-8859-15" | PHP_INI_ALL |
exif.decode_unicode_motorola | "UCS-2BE" | PHP_INI_ALL |
exif.decode_unicode_intel | "UCS-2LE" | PHP_INI_ALL |
exif.encode_jis | "" | PHP_INI_ALL |
exif.decode_jis_motorola | "JIS" | PHP_INI_ALL |
exif.decode_jis_intel | "JIS" | PHP_INI_ALL |
Breve descrição das diretivas de configuração.
exif.encode_unicode define o conjunto de caracteres UNICODE com o qual os comentários dos usuário são manipulados. O padrão é ISO-8859-15 o qual deve funcionar para a maioria dos países não asiáticos. A definição pode ser em branco ou então um conjunto de caracteres suportaos por. Se for vazio, então a codificação interna do mbstring atual é usada.
exif.decode_unicode_motorola define o conjunto de caracteres interno da imagem para comentários do usuário em Unicode se a imagem estiver em motorola byte order (big-endian). Esta definição não pode ser vazia, mas você pode especificar uma lista de codificações suportadas por . O padrão é UCS-2BE.
exif.decode_unicode_intel define o conjunto de caracteres interno da imagem para comentários codificados Unicode se a imagem esta em ordem de bytes inteld (little-endian). Esta definição não pode estar vazia, mas você pode especificar uma lista de codificações suportadas por mbstring. O padrão é UCS-2LE.
exif.encode_jis define o conjunto de caracteres para os comentários do usuário JIS. O padrão é uma string vazia que faz com que as funções usem a codificação interna atual do mbstring.
exif.decode_jis_motorola define o conjunto de caracteres interno da imagem para comentários do usuário JIS se a imagem esta em motorola byte order (big-endian). Esta definição não pode ser vazia mas você pode especificar uma lista de codificações suportadas pelo mbstring. O padrão é JIS.
exif.decode_jis_intel define o conjunto interno de caracteres para os comentários do usuário JIS se a imagem for intel byte order (little-endian). Esta definição não pode ser vazia mas você pode especificar uma lista de codificações suportadas pelo mbstring. O padrão é JIS.
Esta extensão não possui nenhum tipo resource.
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.