Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Eclesiastes

Iniciando com GD

Recommended Posts

INICIANDO COM GD

Produzido pela equipe de Desenvolvimento

-------------------------------------------------------------------

 

Para você usar esse biblioteca você terá de adicioná-la ao seu PHP.

 

 

Como fazer isso?

Verifique se na pasta de extensões (geralmente extensions/) possui o

arquivo php_gd2.dll, se estiver lá, vá até o arquivo PHP.ini que fica

na pasta raiz do PHP e procure pela parte aonde está definido as bibliotecas

que podem ser utilizadas, veja se possui a linha:

extension=php_gd2.dll
Em alguns caso a linha é com php_gd.dll, mas se na pasta tiver o php_gd2.dll,

você pode trocar o nome para o php_gd2.dll no PHP.ini.

Se essa linha estiver comentanda, ou seja, com um ; (ponto e vírgula) retire.

E inicie o Apache se não estiver usando e reinicie se já está com ele ativado.

 

 

Primeiramente devemos criar uma imagem que servirá de base

a toda criação feita apartir dela.

A imagem terá o tamanho 500x500, como especificado nas

variáveis $base_w e $base_h.

$base_w = 400; // width = largura$base_h = 200; // height = altura

Criando a imagem base especificando as dimensões (largura e altura)

$imagem = imagecreatetruecolor($base_w, $base_h);

Agora com a imagem criada, poderemos dá cor a ela

Veja abaixo como criar uma cor no modelo RGB

R = Red (vermelho) | G = Green (verde) e B = Blue (azul)

O maior valor para os 3 últimos argumentos é de 225.

Você pode trabalhar adicionando valores no 3 argumentos

Criando assim uma nova cor a cada combinação feita.

$cor_fundo = imagecolorallocate($imagem, 225, 0, 0);

Agora iremos pintar, ou melhor, preencher a imagem criada

com a cor definida anteriormente.

imagefilledrectangle($imagem, 0, 0, 500, 500, $cor_fundo);

Agora iremos desenhar um retângulo (contorno) sobre a imagem.

Devemos ter sempre em mente como funciona os eixos x e y.

x = horizontal | y = vertical

No caso abaixo trabalhamos com x1, y1, x2, y2.

Isso funciona da seguinte maneira:

x1 = Cria uma linha reta apartir do ponto indicado.

y1 = Cria uma linha em pé apartir do ponto indicado.

x2 = Cria uma linha reta apartir do ponto indicado.

'-- Irá determinar a altura do retângulo.

'-- x2 - x1 = Altura do retângulo.

y2 = Cria uma linha em pé apartir do ponto indicado.

'-- Ela irá determinar o comprimento do retângulo.

'-- y2 - y1 = Largura do retângulo.

O último argumento você poderá indicar a cor.

imagerectangle($imagem, 50, 50, 150, 150, 0);

Agora iremos criar (desenhar) uma elipse.

Quando damos as coordenadas ele usa o centro como origem.

imageellipse($imagem, 250, 100, 100, 100, 0);

Criando cor que irá preencher a elipse

$cor_elipse = imagecolorallocate($imagem, 0, 255, 0);

Iremos pintar a elipse com a cor criada

Note que usei as mesmas coordenadas (x e y) para que a elipse

esteja no mesmo local que a anterior, com a diferença dela ser

menor que a anterior, como foi indicado ela possui 50 x 50 pixels

imagefilledellipse($imagem, 250, 100, 50, 50, $cor_elipse);

Agora iremos exibir a imagem

imagepng($imagem);

Destroi a imagem da memória

imagedestroy($imagem);

Importante:

- Cada imagem será sobreposta a anterior a ela.

Se você criar uma imagem e utilizar as mesmas coordenadas irá perceber isso.

Até usamos isso no exemplo da elipse, ela só não tampou a elipse anterior pois

possui um tamanho menor.

 

- Agora que já tem uma base de como funciona as funções do gd.

Você pode exercitar tentando criar desenhos que utilizam bastante

formas geometricas, sabendo que é possível criar elipse, polígonos, etc...

Leia sempre no manual http://www.php.net/gd e qualquer dúvida poste no fórum.

 

 

 

Que tal você fazer a bandeira do Brasil como exercício?

Estude, tire dúvidas e bola pra frente.

 

Se você tentar e não conseguir veja o código abaixo, se tiver alguma

dúvida poste-a no fórum.

 

<?php// Dimensão (Altura x Largura)$sizeW = 300;$sizeH = 200;// Criando uma imagem$imagem = imagecreatetruecolor($sizeW, $sizeH);//-----------------------------------------------------------// RETÂNGULO//-----------------------------------------------------------// Criando cor [ verde ]$cor_fundo = imagecolorallocate($imagem, 0, 150, 0);// Preenchendo o fundo com a cor escolhidaimagefilledrectangle($imagem, 0, 0, $sizeW, $sizeH, $cor_fundo);//-----------------------------------------------------------// LOSANGO//-----------------------------------------------------------// Criando cor [ amarelo ]$cor_losango = imagecolorallocate($imagem, 255, 200, 0);// Desenhando um losangoimagepolygon($imagem, array(                            (($sizeW * 5) / 100), ($sizeH / 2),                            ($sizeW / 2), (($sizeH * 5) / 100),                            (($sizeW * 95) / 100), ($sizeH / 2),                            ($sizeW / 2), (($sizeH * 95) / 100)                            ),                            4,                            $cor_losango);imagefilledpolygon($imagem, array(                            (($sizeW * 5) / 100), ($sizeH / 2),                            ($sizeW / 2), (($sizeH * 5) / 100),                            (($sizeW * 95) / 100), ($sizeH / 2),                            ($sizeW / 2), (($sizeH * 95) / 100)                            ),                            4,                            $cor_losango);//-----------------------------------------------------------// CÍRCULO//-----------------------------------------------------------// Criando cor [ vermelho ]$cor_circ = imagecolorallocate($imagem, 0, 0, 225);// Desenhando um círculoimageellipse($imagem, ($sizeW / 2), ($sizeH / 2), ($sizeH / 2), ($sizeH / 2), $cor_circ);// Preenchendo o desenho do círculoimagefilledellipse($imagem, ($sizeW / 2), ($sizeH / 2), ($sizeH / 2), ($sizeH / 2), $cor_circ);//-----------------------------------------------------------// TEXTO//-----------------------------------------------------------$cor_letra = imagecolorallocate($imagem, 255, 255, 255);imagestring($imagem, 5, (($sizeW * 34) / 100), (($sizeH * 48) / 100), "Viva o PHP!", $cor_letra);imagepng($imagem);imagedestroy($imagem);?>

Para conhecer outras funções da biblioteca GD, veja no manual:

http://www.php.net/gd

 

 

Bom estudos, até a próxima!

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola, eu gostaria de utilizar imagens e entao fiz como você falou...

descomentei a dll, e copiei o codigo que você postou e ao atualizar a pagina a mesma permanece em branco, você poderia me ajudar ?

 

obrigada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para quem está usando alguma distro linux,a extensão da biblioteca php_gd2 é so.

E também dá pra carregar a mesma usando a função dl.

Ex:

define('PATH_GD2', 'caminhoParaGD2');
dl(PATH_GD2.'php_gd2.dll'); //windows
dl(PATH_GD2.'php_gd2.so'); //linux

Vale também ressaltar...que sem definir o content-type da página como image/png,o código binário da imagem que será exibido.Se quiser que a imagem seja exibida...adicionar o seguinte antes de enviar coisas ao buffer de saida (nesse caso antes da função imagepng).

header('Content-type: image/png');

Ou colocar o código e o comando dentro 'de um fluxo de saída'...:

ob_start();
//codigo
header('Content-type: image/png');
ob_end_flush();

je.casas, roda esse script:

<?php
echo 'Display errors:', (ini_get('display_errors') == 1)? 'ativado' : 'desativado', '.', nl2br("\n");
if(extension_loaded('gd')){
	$gdinfo = gd_info();
	if(!preg_match('/[2-9]\.[0-9]+/', $gdinfo["GD Version"])){
		echo 'Atualizar a biblioteca GD.';
	} else {
		echo 'Tudo ok com a GD.';
	}
} else {
	echo 'A GD não foi carregada.';
}
?>

Me diz que mensagens ele te retornou!

Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.