Jump to content

Imagem com PHP


pedrotuga

Recommended Posts

Bem... ainda n se falou muito disto aqui nos fórums,  na verdade acho que só faz sentido trabalhar com imagemem php qdo se tem uma equipa... para projectos individuais é um exagero levar a coisa a esse ponto. Salvo claro, situações em que a imagem é a parte central do script, como por exmeplo numa galeria de fotos.

Anyway... a libraria mais usada é mesmo a GD...acho que á uma magik n sei quantos tb...

Aqui vai um site com uns exemplos muito bons e funções que podemos sacar e usar a nosso belo prazer:

http://phpgd.com/index.php?pf=tab

Ja agora fica aqui um exemplo de uma imagem gerada com GD

<?php

function make_image($text, $w, $h)
    {
    
    $x=15;
    $y=40;
    $size=20;
    
    $fontfile="VERDANA.TTF";
    $angle=3;

    header ("Content-type: image/png");
    $im = @imagecreate ($w, $h) or die ("Cannot Initialize new GD image stream");
    
    $background_color = imagecolorallocate ($im, 44, 44, 250);
    $text_color1 = imagecolorallocate ($im, 0, 0 ,  0);
    $text_color2 = imagecolorallocate ($im, 255, 255,  255);
    
    ImageTTFText ($im, $size, $angle, $x+2, $y+2, $text_color2, $fontfile, $text);
    ImageTTFText ($im, $size, $angle, $x, $y, $text_color1, $fontfile, $text);
    imagepng ($im);
    imagedestroy ($im);
    }

//posto isto vamos gerar  imagem===========================
$text="Portugal-a-Programar.org";
make_image($text,380,50);
?>

e aqui fica a imagem gerada por este pequeno script 😛

image.png

Link to comment
Share on other sites

Já se falou alguma coisa disso quando eu criei o sistema de sigs cá para o forum 😛 Aquilo é tudo feito com GD lib 😛

É uma lib muito util, eu já a usei para fazer gráficos (também já postei um tuturial que mostra como fazer gráficos em flash e php, sem GD lib), pode-se fazer modificações nas imagens, desde reduzir, adicionar texto, entre outros 🙂

Aconselho mesmo 😛

Link to comment
Share on other sites

(...) na verdade acho que só faz sentido trabalhar com imagemem php qdo se tem uma equipa... para projectos individuais é um exagero levar a coisa a esse ponto.(...)

ou eu não percebi, ou discordo completamente disto...

Da-me aí um exemplo de um projecto pessoal que não seja baseado em imagem ( como a cena das assinaturas ) e que justifique o uso e imagem.

Link to comment
Share on other sites

É um caso, outro são os grafs do http://folding.extremeoverclocking.com.

A principal utilização da biblioteca gd em php é mm sigs e stats, e isso só aparece normalmente em foruns que tem sempre uma equipa e não um só gajo pro traz.

No entanto eu estou a trabalhar sózinho e também utilizo a gd para fazer scatter plots.

http://edumad.freehostia.com/TheBin/conca1_Group_1_KINETICS_1.png

Link to comment
Share on other sites

  • 2 weeks later...

Boas!

Ainda sou novato em php, e estou a tentar implementar uma galeria de fotos, mas até agora a solução que tentei não deu frutos...

A solução que tentei implementar era simples, baseava-se em manipular atravez de 2 botões o nome da imagem a exibir (os nomes das imagens eram numeros seguidos ex: 1.jpg 2.jpg)

<img src=imagens/"<?php echo $foto; ?>.jpg" width="600" height="480" />

Sempre que o botão "proxima" era premido a variavel $foto += $foto

Sempre que o botão "anterior" era premido a variavel $foto -= $foto

claro que depois tinha de ter limites para que a variavel $foto não excedesse os valores dos nomes das imagens (mas a questão não está aqui)

Esta solução falhou porque não consegui implementar variaveis com estado (em que o seu valor actual depende do seu passado).

Mas como é obvio esta solução também não é muito eficaz porque sempre que eram adicionadas fotos à galeria tinha de andar a alterar o codigo (definir novos limites para a variavel $foto)

Alguem me pode ajudar com outra solução para este problema?

Pelo que percebi a biblioteca GD é muito util para manipular imagens, como posso compilar o meu php para suportar essa biblioteca?

Tks

Link to comment
Share on other sites

Não tens que compilar nada. Podes ter que adicionar suporte para a libraria GD.Mas já deve estar tudo ok por defeito.

Copia o código que eu colei no tópico inicial para um ficheiro .php, aponta o teu browser para esse ficheiro, se vires uma imagem a dizer: portugal-a-programar então é porque está tudo ok.

Quanto ao teu problema... epa... tens k por os nomes dos ficheiros para dentro de um array e depois construir esses links usando uma cena do tipo

<?php
echo '<a href="$nomes_d_ficheiros[i-1]">anterior</a>';
echo '<a href="$nomes_d_ficheiros[i-1]">proximo</a>';
?>

para pores os nomes dos ficheiros para dentro de um array usa uma cena do tipo

<?php
   while (false !== ($file = readdir($handle))) {
       $nomes_dos_ficheiros[]=$file;
   }
?> 

já agora dá uma olhadela no manual aqui

http://pt.php.net/manual/en/function.readdir.php

Link to comment
Share on other sites

Não tens que compilar nada. Podes ter que adicionar suporte para a libraria GD.Mas já deve estar tudo ok por defeito.

Copia o código que eu colei no tópico inicial para um ficheiro .php, aponta o teu browser para esse ficheiro, se vires uma imagem a dizer: portugal-a-programar então é porque está tudo ok.

Não consigo ver a imagem, como é k faço para dar suporte para GD?

Link to comment
Share on other sites

ui... epa... lamento mas n sei... nas minhas instalações do php isso já vinha.

olha lá usas linux ou windows? em linux é mais facil no windows nem sei bem como se instalam modulos/bibliotecas.

Lamento dizer isto mas.. google...

To a usar em windows, instalei o easyPHP k configura logo php, mysql e apache.

Vo ver se descubro

Link to comment
Share on other sites

  • 4 weeks later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.