+1

Gerando Imagens Dinamicamente

criado por Luiz Ribeiro em 13/04/2002 9:07am
Bom, para iniciar vou explicar o procedimento para criar uma imagem usando o módulo GD em PHP. Se você não tem esse módulo, você pode fazer o download dele em http://www.boutell.com/gd/.

Para se criar a imagem, será usada a função ImageCreate(), então serão realizadas as alterações na imagem, então será finalizada a imagem usando ImageJpeg(), ImagePng() ou até ImageGif() se a versão do módulo GD for inferior à 1.4.

Bom, vamos ao que interessa. Primeiramente vamos criar uma pequena imagem com o seguinte texto: PHPBrasil. O código ficará da seguinte forma:

<?php
header("Content-type: image/gif"); //Informa ao browser que o arquivo é uma imagem no formato GIF

$imagem = ImageCreate(150,40); //Cria uma imagem com as dimensões 100x20

$vermelho = ImageColorAllocate($imagem, 255, 0, 0); //Cria o segundo plano da imagem e o configura para vermelho
$branco = ImageColorAllocate($imagem, 255, 255, 255); //Cria a cor de primeiro plano da imagem e configura-a para branco

ImageString($imagem, 3, 3, 3, "PHPBrasil", $branco); //Imprime na imagem o texto PHPBrasil na cor branca que está na variável $branco

ImageGif($imagem); //Converte a imagem para um GIF e a envia para o browser

ImageDestroy($imagem); //Destrói a memória alocada para a construção da imagem GIF.
?>

Bom, o script está todo comentado e acho que você entendeu. Se alguma dúvida ficar martelando aí, manda um comentário. =D

Bom, neste exemplo usamos a função ImageGif() para converter a imagem, $imagem, e depoisa enviamos ao navegador. Mas poderíamos ter salvo esta imagem em um arquivo, ao invés de mostrar ela no navegador. Veja o exemplo:

<?php
$arquivo = "imagem1.gif";

$imagem = ImageCreate(150,40);

$vermelho = ImageColorAllocate($imagem, 255, 0, 0);
$branco = ImageColorAllocate($imagem, 255, 255, 255);

ImageString($imagem, 3, 3, 3, "PHPBrasil", $branco);
ImageGif($imagem, $arquivo);

ImageDestroy($imagem);

echo "A imagem foi salva no arquivo $arquivo.";
?>

Como você deve ter notado, apenas retiramos aquele header() (que informava ao browser que o arquivo era uma imagem), afinal este exemplo não irá mostrar a imagem no navegador e sim gravar ela em $arquivo, e também mudamos os parâmetros da função ImageGif() para salvar a imagem no arquivo.

Comentários:

Mostrando 1 - 10 de 14 comentários
Tentem usar a função imagejpeg() ao invés de ImageGif() e utilize a DLL php_gd2.dll ! acho q dae funciona!
06/03/2005 5:41pm (~19 anos atrás)

Edmund Macruz disse:
Gente
php.ini
extension_dir = D:\PHP\extensions (existe esse diretório e descompactei o gd nele juntamente com a php_gd.dll)
deletei o ; da linha extension=php_gd.dll
qdo mando rodar
Content-type: text/html X-Powered-By: PHP/4.3.1 PHP Warning: Unknown(): Unable to load dynamic library 'D:\PHP\extensions\php_gd.dll' - Não foi possível encontrar o procedimento especificado. in Unknown on line 0
alguem pode me ajudar
19/02/2004 7:49am (~20 anos atrás)

Cara, eu configurei tudo e tal.... Mas em que pasta exatamente eu colo os arquivos do .zip? Coloquei na pasta c:\php\gd, configurei no php.ini e mesmo assim ta dando erro...
28/02/2003 3:23pm (~21 anos atrás)

Apesar do link ser pro Manual em português, está escrito em inglês.

http://www.php.net/manual/pt_BR/ref.image.php
30/10/2002 8:53am (~21 anos atrás)

Luiz Ribeiro disse:
Simplesmente coloque o php_gd.dll no extension_dir (que está definido em seu php.ini).

Abraços,
Luiz Gustavo Cardoso Ribeiro
19/05/2002 4:55pm (~22 anos atrás)

Eu sei que tem que tirar o ; da extension=php_gd.dll
Até ai não tem drama e depois onde eu descompacto o gd-1.8.4.zip? em que pasta??
Valeu.
18/05/2002 7:58pm (~22 anos atrás)

Luiz Ribeiro disse:
Seguinte cara,
Você esqueceu de definir a extensão usando:
extension=php_gd.dll

Ele simplesmente não encontra a função pois você apenas colocou a dll no dir, você precisa informar ao php que é para ele usar a extensão da gd.

Peço desculpas novamente por ter me esquecido de falar isso em meus primeiros comentários...

Abraços,
Luiz Gustavo Cardoso Ribeiro
24/04/2002 9:11pm (~22 anos atrás)

Luiz Ribeiro disse:
Rafael, eu acho que tem, é só você colocar o arquivo php_gd.dll no diretório onde estão suas extensões do php (que está definido em seu php.ini).

E tem uma outra coisa que eu esqueci de citar anteriormente, além de você colocar a extensão no diretório, você deve incluir a extensão em seu php.ini da seguinte forma:
extension=php_gd.dll

Você provavelmente tem essa linha em seu php.ini já, mas comentada, se não tiver, é só adicionar ela...

Se você não souber qual o seu diretório de extensões do PHP, você pode ver em seu php.ini isso, por exemplo, no meu arquivo está assim:
extension_dir = D:\PHP\extensions

Logo, é só você procurar por extension_dir dentro de tal arquivo...

Espero ter solucionado as dúvidas de vocês!

Abraços,
Luiz Gustavo Cardoso Ribeiro
18/04/2002 5:12pm (~22 anos atrás)

tem como fazer isso rodando no PHPTriad???
17/04/2002 5:33pm (~22 anos atrás)

Luiz Ribeiro disse:
Não... Plataformas unix também podem usar, mas eu não tenho conhecimento de como fazer isso.

Vou procurar material sobre o assunto, se eu encontrar, eu coloco aqui a url...

Abraços,
Luiz Gustavo Cardoso Ribeiro
17/04/2002 11:51am (~22 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)