0

Criando Barras 3D usando PHP e GD

criado por Paulo Vinícius Vitto Ruthes em 04/06/2001 1:37am
<p><br>
3.1.1) ImageRectangle(str imagem, int x_1, int y_1, int x_2, int
y_2, cor):
</p>
<p>Essa fun&ccedil;&atilde;o desenha em imagem um ret&acirc;ngulo
da cor come&ccedil;ando em (x_1, y_1) e terminando
em (x_2, y_2).<br>
- ImageRectanlgle($imagem, 0, 0, 349, 149, $preto);</p>
<p>3.1.1.2) A fun&ccedil;&atilde;o ImageRectanlge tem uma variante
chamada ImageFilledRectangle, a qual funciona da mesma maneira,
exceto pelo fato que esta preenche o ret&ecirc;ngulo com a mesma
cor das bordas.</p>
<p>3.1.2) ImageLine(str imagem, int x_1, int y_1, int x_2, int
y_2, cor):
</p>
<p>Essa fun&ccedil;&atilde;o desenha uma linha comum em imagem
com a cor come&ccedil;ando em (x_1, y_1)<br>
e terminando em (x_2, y_2).<br>
- ImageLine($imagem, 2, 2, 10, 10, $preto);</p>
<p>3.1.3) ImageString(str imagem, int tamanho, int x, int y, cor,
str string):
</p>
<p>Essa fun&ccedil;&atilde;o escreve a string em imagem
no tamanho com a cor em (x, y).</p>
<p>3.1.3.2) A fun&ccedil;&atilde;o ImageString utilizar&aacute; uma
fonte built-in caso nenhuma fonte seja carregada pela
fun&ccedil;&atilde;o ImageLoadFont. N&atilde;o explicarei esta fun&ccedil;&atilde;o
j&aacute; que as fontes utilizadas como padr&atilde;o j&aacute;
s&atilde;o perfeitas para esses caso.</p>
<p>3.1.3.3) Existe ainda a fun&ccedil;&atilde;o ImageTTFText, que
trabalha com fontes True Type, mas como para isso voc&ecirc; deve
ter compilado o PHP com op&ccedil;&atilde;o de Fontes TTF e juntamente
nesse carro o GD deixaremos de lado.</p>
<p>4) Agora sim, a base da montagem de uma barra:</p>
<p>Agora que voc&ecirc; j&aacute; tem todas as fun&ccedil;&otilde;es
necess&aacute;rias para montagem de uma barra vamos ao trabalho,
sendo esse explicado no script.</p>
<p class="mysql">&lt;?php<br>
header(&quot;Content-Type: image/png&quot;);<br>
$imagem = ImageCreate(350, 150);</p>
<p class="mysql">$branco = ImageColorAllocate($imagem, 255, 255, 255);<br>
$preto = ImageColorAllocate($imagem, 0, 0, 0);</p>
<p class="mysql"> // cor nova<br>
$vermelho = ImageColorAllocate($imagem, 255, 0, 0);<br>
// variante da vermelha (efeito de ilumina&ccedil;&atilde;o)<br>
$vermelho_2 = ImageColorAllocate($imagem, 255, 0, 0);</p>
<p class="mysql"> // cor de fundo da imagem<br>
ImageFill($imagem, 1, 1, $branco);<br>
// repare que este ret&acirc;ngulo formar&aacute; uma borda na imagem<br>
ImageRectangle($imagem, 0, 0, 349, 149, $preto);</p>
<p class="mysql">/*<br>
Esta parte mostra como montar apenas UMA barra somente para estudo<br>
Para entender basta pensar em como a gente desenha um cubo no papel
sem r&eacute;gua nem nada:<br>
Primeiro se desenha um quadrado, e um parecido um pouco acima e
ao lado do primeiro como se estivessem sobrepostos, e liga-se os
v&eacute;rtices de cada quadrado com outro do outro quadrado, e
pronto temos um cubo. Este &eacute; o princ&iacute;pio da barra
&quot;3D&quot;.<br>
*/</p>
<p class="mysql"> // desenha o ret&acirc;ngulo base<br>
ImageRectangle($imagem, 0, 20, 50, 30, $preto);<br>
// desenha a primeira linha do topo da barra<br>
ImageLine($imagem, 50, 20, 55, 35, $preto);<br>
// desenha a segunda linha do topo da barra<br>
ImageLine($imagem, 50, 30, 55, 35, $preto);<br>
// desenha a terceira linha do topo da barra - At&eacute; aqui voc&ecirc;
tem uma barra e um<br>
// quadril&aacute;tero <br>
ImageLine($imagem, 55, 25, 55, 35, $preto);<br>
// desenha a linha da ponta do quadril&aacute;tero at&eacute; o
com&eacute;co terminando o contorno // da barra<br>
ImageLine($imagem, 1, 35, 55, 35, $cor_b);<br>
// preenche o primeiro ret&acirc;ngulo <br>
ImageFill($imagem, 2, 22, $vermelho);<br>
// preenche o quadril&aacute;tero no topo da barra<br>
ImageFill($imagem, 51, 32, $vermelho_2);<br>
// preenche o quadril&aacute;tero abaixo da barra<br>
ImageFill($imagem, 54, 32, $vermelho_2);</p>
<p class="mysql">ImagePNG($imagem);<br>
ImageDestroy($imagem);<br>
?&gt;</p>
<p>Muito bem, se voc&ecirc; consegui uma barra &quot;3D&quot; na sua
imagem voc&ecirc; fez tudo certo, e pronto voc&ecirc; conseguiu
uma barra 3D, mas... e se voc&ecirc; tivesse que montar a partir
de um dado desconhecido?<br>
</p>
<p>&nbsp; </p>

Comentários:

Mostrando 1 - 4 de 4 comentários
Queria representar valores e meses ex: jan 300, fevereiro 400, como faço?
11/08/2006 7:00am (~18 anos atrás)

Ciro Grau disse:
Até pode estar instalado, mas no PHP.INI deve tirar o ";"
;extension=php_gd2.dll
extension=php_gd2.dll

12/11/2004 7:14pm (~20 anos atrás)

cara, o gd nao ta instalado ai, por isso aparece essa mensagem
15/11/2003 4:29pm (~21 anos atrás)

não consegui fazer rodar o exemplo que está na primeira página do artigo, dá o seguinte erro.....o que pode ser?

<br>
Fatal error: Call to undefined function: imagecreate() in /home/httpd/dominios/naveg.com.br/restrito/image.php on line 5<br>

a biblioteca libgd-1.7.3-2cl está instalada no meu servidor.....

VALEU

MAURICIO
20/12/2002 9:14am (~22 anos atrás)

Novo Comentário:

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