Jump to content


Photo

Como Pegar Imagem Que Acabou De Ser Gerada Por Script


  • Faça o login para participar
27 replies to this topic

#1 rbfabbri

rbfabbri

    Novato no fórum

  • Usuários
  • 23 posts
  • Sexo:Não informado

Posted 05/05/2008, 22:00

Fala galera

Estou mexendo em um código aqui que insere texto em uma imagem. Eu vou ter que utilizá-lo de forma que o script seja executado duas vezes para geração da imagem final.

Por esse motivo utilizei o seguinte no final do código:

$nome = $dir.date("Ymdhis").".gif";
imagegif($im,$nome);

Isso nomeia a imagem com base na sua data de criação (ano/mes/dia/hora/segundos.gif) para que não seja sobreposta por outra.

O problema é que como disse, terei que executar o script duas vezes. Gostaria de saber como "chamo" essa imagem intermediária que acabou de ser gerada para ser executada novamente pela script.

Não sei se fui claro mas realmente não sei como fazer isso.

Agradeço a quem puder me ajudar.

#2 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 06/05/2008, 08:16

No caso você vai precisar de utilizar esta função com o segundo parâmetro e sem ele.

Para o segundo parâmetro definido, a imagem será salva no disco, ok, a primeira parte foi feita e logo abaixo você pode não definir este caminho e então exibir a imagem direto definindo também o cabeçalho através da função header() como mostra o exemplo aqui.

Veja se você entendeu e tente fazer desta forma.

Flws...
(y)Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#3 rbfabbri

rbfabbri

    Novato no fórum

  • Usuários
  • 23 posts
  • Sexo:Não informado

Posted 06/05/2008, 11:09

Não entendi Paulo.

Terei que executá-lo duas vezes pois vou inserir o texto em dois locais da imagem e com fontes diferentes.


O código que uso é esse:

<?php
//////////////////////
//
// Net Avatar Maker
// version 1.5
// http://php-net.net/
// 1:01 AM 4/28/2005
//
//////////////////////
include_once('./includes/avatar_functions.php');
$name = stripslashes($_GET['name']);
$size = '18';
$font = 'images/avatar_maker/fonts/'.'01.ttf';
$fontcolor['r'] = '255'; // font color - RED

$fontcolor['g'] = '255'; // font color - GREEN

$fontcolor['b'] = '255';

$shadow = stripslashes($_GET['shadow']);
$lines = stripslashes($_GET['lines']);
$bgpic = 'images/avatar_maker/palmeiras.gif';

//switch ($_GET['avatar']) {
//case '1':
//$bgpic = 'images/avatar_maker/1.gif';
//break;




$im = imagecreatefromgif($bgpic);
//Calculate, the centre:
for(;;){
list($image_width, $image_height) = getimagesize($bgpic);
list($left_x, , $right_x) = imagettfbbox($size, 0, $font, $name);
$text_width = $right_x - $left_x;
if($image_width > $text_width+5){
break;
}
$size = $size - .5;
if($size == 1){
die('Script not responding to decreasing font size, in other words: try using less letters.');
}
}
$padding = ($image_width - $text_width)/2;

$textcolor = imagecolorresolve($im, $fontcolor['r'], $fontcolor['g'], $fontcolor['b']);

$grey = imagecolorallocate($im, 128, 128, 128);

if($shadow == 'y'){
imagettftext($im, $size, 0, $padding+1, 77, $grey, $font, $name);
}
if($lines == 'y'){

//imagettftext($im, $size, 0, $padding+1, 77, $grey, $font, $name);

}

imagettftext($im, $size, 0, $padding, 280, $textcolor, $font, $name);
if($_GET['dl'])

{
header('Content-Disposition: attachment; filename="avatar.gif"');
}

header("Content-type: image/gif");

$nome = $dir.date("Ymdhis").".gif";
imagegif($im);
imagegif($im,$nome);

?>


#4 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 06/05/2008, 11:26

Ok, entendi o que você quis dizer com 'executar duas vezes'. São estas duas linhas que eu também indiquei né? Se for isto, esta seria minha única sugestão.

Não tem como salvar e ao mesmo tempo exibir, pelo menos usando a função imagegif(). Outra forma eu desconheço. :huh:

Flws...
(y)Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#5 rbfabbri

rbfabbri

    Novato no fórum

  • Usuários
  • 23 posts
  • Sexo:Não informado

Posted 06/05/2008, 11:46

Paulo, mas você poderia explicar de forma que um leigo (eu kkkkkkk) entenda.

Obrigado.

#6 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 06/05/2008, 17:41

Certo, só não entendi qual explicação você está querendo. :huh: Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#7 lwirkk

lwirkk

    Veterano

  • Usuários
  • 1314 posts
  • Sexo:Não informado

Posted 07/05/2008, 00:01

Você quer pegar o caminho da imagem onde ela foi salva, isso?

E você quer pegar esse valor para usar na segunda vez que o script for executado? Ou depois da segunda vez que precisaria desse valor?
Posted Image
"Se quiser ser feliz por um dia, vingue-se; se quiser ser feliz por uma vida inteira, perdoe."

Muito Obrigado à todos do fórum, e à toda equipe do fórum! =)

#8 rbfabbri

rbfabbri

    Novato no fórum

  • Usuários
  • 23 posts
  • Sexo:Não informado

Posted 07/05/2008, 00:53

Você quer pegar o caminho da imagem onde ela foi salva, isso?

E você quer pegar esse valor para usar na segunda vez que o script for executado? Ou depois da segunda vez que precisaria desse valor?


Isso mesmo, preciso do caminho da imagem que foi gerada na 1ª execução para depois poder executar o script novamente nessa imagem.

valeu!!!

#9 lwirkk

lwirkk

    Veterano

  • Usuários
  • 1314 posts
  • Sexo:Não informado

Posted 07/05/2008, 01:18

O $dir ali é qual valor?
Posted Image
"Se quiser ser feliz por um dia, vingue-se; se quiser ser feliz por uma vida inteira, perdoe."

Muito Obrigado à todos do fórum, e à toda equipe do fórum! =)

#10 rbfabbri

rbfabbri

    Novato no fórum

  • Usuários
  • 23 posts
  • Sexo:Não informado

Posted 07/05/2008, 01:28

O $dir ali é qual valor?


Como não defini nada ,ele está salvando na própria pasta que está o script.

#11 lwirkk

lwirkk

    Veterano

  • Usuários
  • 1314 posts
  • Sexo:Não informado

Posted 07/05/2008, 01:42

Tenta isso:

<?php
//////////////////////
//
// Net Avatar Maker
// version 1.5
// http://php-net.net/
// 1:01 AM 4/28/2005
//
//////////////////////
session_start();
include_once('./includes/avatar_functions.php');
$name = stripslashes($_GET['name']);
$size = '18';
$font = 'images/avatar_maker/fonts/'.'01.ttf';
$fontcolor['r'] = '255'; // font color - RED

$fontcolor['g'] = '255'; // font color - GREEN

$fontcolor['b'] = '255';

$shadow = stripslashes($_GET['shadow']);
$lines = stripslashes($_GET['lines']);
$bgpic = 'images/avatar_maker/palmeiras.gif';

//switch ($_GET['avatar']) {
//case '1':
//$bgpic = 'images/avatar_maker/1.gif';
//break;




$im = imagecreatefromgif($bgpic);
//Calculate, the centre:
for(;;){
list($image_width, $image_height) = getimagesize($bgpic);
list($left_x, , $right_x) = imagettfbbox($size, 0, $font, $name);
$text_width = $right_x - $left_x;
if($image_width > $text_width+5){
break;
}
$size = $size - .5;
if($size == 1){
die('Script not responding to decreasing font size, in other words: try using less letters.');
}
}
$padding = ($image_width - $text_width)/2;

$textcolor = imagecolorresolve($im, $fontcolor['r'], $fontcolor['g'], $fontcolor['b']);

$grey = imagecolorallocate($im, 128, 128, 128);

if($shadow == 'y'){
imagettftext($im, $size, 0, $padding+1, 77, $grey, $font, $name);
}
if($lines == 'y'){

//imagettftext($im, $size, 0, $padding+1, 77, $grey, $font, $name);

}

imagettftext($im, $size, 0, $padding, 280, $textcolor, $font, $name);
if($_GET['dl'])

{
header('Content-Disposition: attachment; filename="avatar.gif"');
}

header("Content-type: image/gif");

$nome = $dir.date("Ymdhis").".gif";
$_SESSION['path']=$_SERVER['SERVER_NAME'].dirname($_SERVER['PHP_SELF']).'/'.$nome;
imagegif($im);
imagegif($im,$nome);

?>


Em negrito é onde adicionei....

E para pegar o valor na segunda vez só usar a variavel:
$_SESSION['path'];

Edição feita por: lwirkk, 07/05/2008, 01:44.

Posted Image
"Se quiser ser feliz por um dia, vingue-se; se quiser ser feliz por uma vida inteira, perdoe."

Muito Obrigado à todos do fórum, e à toda equipe do fórum! =)

#12 rbfabbri

rbfabbri

    Novato no fórum

  • Usuários
  • 23 posts
  • Sexo:Não informado

Posted 07/05/2008, 02:14

Alterei o código para a primeira execução como vc falou, até aí tudo normal, a imagem é gerada e salva na pasta normalmente.

Na segunda execução do script (criei uma nova página) em $bgpic (que pega a imagem) coloquei $_SESSION['path']; ficando assim:

$bgpic = $_SESSION['path'];

Mas aí ao executar novamente aparece o seguinte erro do script:

Script not responding to decreasing font size, in other words: try using less letters.

O que será que hein?

Obrigado pela ajuda!

#13 lwirkk

lwirkk

    Veterano

  • Usuários
  • 1314 posts
  • Sexo:Não informado

Posted 07/05/2008, 02:47

Estranho, mas agora o erro está no script.

A imagem é pequena ou tem muito texto para ser escrito nela?

Edição feita por: lwirkk, 07/05/2008, 02:47.

Posted Image
"Se quiser ser feliz por um dia, vingue-se; se quiser ser feliz por uma vida inteira, perdoe."

Muito Obrigado à todos do fórum, e à toda equipe do fórum! =)

#14 Anderson JS

Anderson JS

    Novato no fórum

  • Usuários
  • 6 posts
  • Sexo:Não informado

Posted 12/05/2008, 20:13

Gostaria de saber se consigo pegar uma imagem png de um site em php que é criado em random e mostrar em outro servidor site script para completar um formulário...?

#15 lwirkk

lwirkk

    Veterano

  • Usuários
  • 1314 posts
  • Sexo:Não informado

Posted 12/05/2008, 21:12

Gostaria de saber se consigo pegar uma imagem png de um site em php que é criado em random e mostrar em outro servidor site script para completar um formulário...?

Pegar a imagem não é impossível, mas há os problemas:
Primeiro, se for para usar como CAPTCHA não vale a pena o trabalho.
Segundo, dependendo do servidor que verificar nos arquivos de LOG isso, poderá bloquear seu IP/SITE de acesso a eles...
E demais coisas... =)

Se quiser algum script para digitar o que ver na imagem, procura por "captcha".
Posted Image
"Se quiser ser feliz por um dia, vingue-se; se quiser ser feliz por uma vida inteira, perdoe."

Muito Obrigado à todos do fórum, e à toda equipe do fórum! =)




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq