Jump to content


Photo

Avatar Randômico


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

#1 Magus_

Magus_

    Normal

  • Usuários
  • 70 posts
  • Sexo:Masculino
  • Localidade:Braga / SP

Posted 07/04/2006, 23:49

Olá!

Eu consigui um script de avatar randômico, para usar em fórums, como esse.

O procedimento é assim:

Criar uma pasta com o nome avatar.png (ou qualquer outro nome.extensao de imagem) e colocar dentro dele um arquivo index, com esse script:

<?php
$imagens = Array ("http://img91.imagesh...72/haha0ed.png",

"http://img529.images...avatar28av.gif",

"http://img529.images...avatar34ih.gif",

"http://img529.images...avatar42cu.gif");
$random = rand (0, 3);
header ("Content-type: image/gif");
$imagem = imagecreatefromgif ($imagens[$random]);
$largura = imagesx ($imagem);
$altura = imagesy ($imagem);
$nova = imagecreatetruecolor ($largura, $altura);
imagecopyresized ($nova, $imagem, 0, 0, 0, 0, $largura, $altura, $largura, $altura);
imagepng ($nova);
imagedestroy ($nova);
imagedestroy ($imagem);
?>


Só que, somente os avatars dele aparecem, quando vai ler o meu, não aparece (o meu é o primeiro).

PS.: os avatares dele são 170x170 e o meu é menor, será que isso prejudica em alguma coisa?

Alguém tem alguma idéia de como me ajudar?


#2 semponto

semponto

    Turista

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

Posted 08/04/2006, 07:00

pode ser que o seu esteja em png e o deles em gif.. sera que isso nao teria algo haver?

#3 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 08/04/2006, 11:29

pode ser que o seu esteja em png e o deles em gif.. sera que isso nao teria algo haver?

Algo não, tudo. :P

As funções para GIF e PNG são distintas, sendo assim, deverá haver uma checagem da imagem sorteada no array e com isso usar a função apropriada para o caso. ;)

[]’s :DAté mais

#4 Magus_

Magus_

    Normal

  • Usuários
  • 70 posts
  • Sexo:Masculino
  • Localidade:Braga / SP

Posted 08/04/2006, 18:29

Mas eu já tentei em GIF.
Alguém tem mais alguma idéia?
Vou dar mais algumas testadas!

Edit:
Olha, eu coloquei a imagem em GIF, olhem o código de novo:

<?php
$imagens = Array ("http://img427.imageshack.us/img427/5927/avatar8dm.gif", 

"http://img529.imageshack.us/img529/6676/avatar28av.gif", 

"http://img529.imageshack.us/img529/1371/avatar34ih.gif", 

"http://img529.imageshack.us/img529/2969/avatar42cu.gif");
$random = rand (0, 3);
header ("Content-type: image/gif");
$imagem = imagecreatefromgif ($imagens[$random]);
$largura = imagesx ($imagem);
$altura = imagesy ($imagem);
$nova = imagecreatetruecolor ($largura, $altura);
imagecopyresized ($nova, $imagem, 0, 0, 0, 0, $largura, $altura, $largura, $altura);
imagepng ($nova);
imagedestroy ($nova);
imagedestroy ($imagem);
?>

Eu fico dando "Atualizar", vai aparecendo as outras, mas dai quando vai aparecer a minha da o seguinte erro:

A imagem “http://localhost:8090/avatar.gif/” contém erros e não pode ser exibida.

Ps.: Eu estou testando o script pelo XAMPP, mas isso não vem ao caso =P
Alguém tem alguma idéia?

Edição feita por: Magus_, 08/04/2006, 18:47.


#5 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 08/04/2006, 18:46

Exemplo:

<?php

	$imagens = array('http://img91.imageshack.us/img91/5872/haha0ed.png',
					 'http://img529.imageshack.us/img529/6676/avatar28av.gif',
					 'http://img529.imageshack.us/img529/1371/avatar34ih.gif',
					 'http://img529.imageshack.us/img529/2969/avatar42cu.gif'
					);

	// Selecionando uma imagem do array
	$random = rand(0, count($imagens) - 1);

	// Obtendo dados da imagem
	$aImgDados = getimagesize($imagens[$random]);
	$largura = $aImgDados[0];
	$altura  = $aImgDados[1];
	
	header('Content-type: '. $aImgDados['mime']);
	
	// Verificando se a imagem é um gif
	if (eregi('gif', $aImgDados['mime'])) {
		$imagem = imagecreatefromgif($imagens[$random]);
	} elseif (eregi('png', $aImgDados['mime'])) {
		$imagem = imagecreatefrompng($imagens[$random]);
	} else {
		exit;
	}
	
	// Criando nova imagem
	$nova = imagecreatetruecolor($largura, $altura);
	imagecopyresized ($nova, $imagem, 0, 0, 0, 0, $largura, $altura, $largura, $altura);

	imagepng($nova);
	imagedestroy($nova);
	imagedestroy($imagem);
	
?>

Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#6 Magus_

Magus_

    Normal

  • Usuários
  • 70 posts
  • Sexo:Masculino
  • Localidade:Braga / SP

Posted 08/04/2006, 18:55

Exemplo:

<?php

	$imagens = array('http://img91.imageshack.us/img91/5872/haha0ed.png',
					 'http://img529.imageshack.us/img529/6676/avatar28av.gif',
					 'http://img529.imageshack.us/img529/1371/avatar34ih.gif',
					 'http://img529.imageshack.us/img529/2969/avatar42cu.gif'
					);

	// Selecionando uma imagem do array
	$random = rand(0, count($imagens) - 1);

	// Obtendo dados da imagem
	$aImgDados = getimagesize($imagens[$random]);
	$largura = $aImgDados[0];
	$altura  = $aImgDados[1];
	
	header('Content-type: '. $aImgDados['mime']);
	
	// Verificando se a imagem é um gif
	if (eregi('gif', $aImgDados['mime'])) {
		$imagem = imagecreatefromgif($imagens[$random]);
	} elseif (eregi('png', $aImgDados['mime'])) {
		$imagem = imagecreatefrompng($imagens[$random]);
	} else {
		exit;
	}
	
	// Criando nova imagem
	$nova = imagecreatetruecolor($largura, $altura);
	imagecopyresized ($nova, $imagem, 0, 0, 0, 0, $largura, $altura, $largura, $altura);

	imagepng($nova);
	imagedestroy($nova);
	imagedestroy($imagem);
	
?>


O seu code funcionou, mas ainda tem um problema.
Os avatars do meu amigo são 170x170 como eu disse no tópico, e esse meu abriu (tb é 170x170).
Mas se eu colocar um menor (120x120) não abre, aparece isso:

http://localhost:8090/avatar.gif/

Eu tenho que deixa todas as imagens com os mesmos pixels para funcionar?


#7 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 08/04/2006, 19:05

Claro! Desta vez a imagem não é PNG nem GIF, é JPEG! =)

Veja assim:
<?php

	$imagens = array('http://img427.imageshack.us/img427/5927/avatar8dm.gif',
					 'http://img529.imageshack.us/img529/6676/avatar28av.gif',
					 'http://img529.imageshack.us/img529/1371/avatar34ih.gif',
					 'http://img529.imageshack.us/img529/2969/avatar42cu.gif'
					);

	// Selecionando uma imagem do array
	$random = rand(0, count($imagens) - 1);

	// Obtendo dados da imagem
	$aImgDados = getimagesize($imagens[$random]);
	$largura = $aImgDados[0];
	$altura  = $aImgDados[1];
	
	header('Content-type: '. $aImgDados['mime']);
	
	// Verificando se a imagem é um gif
	if (eregi('gif', $aImgDados['mime'])) {
		$imagem = imagecreatefromgif($imagens[$random]);
	} elseif (eregi('png', $aImgDados['mime'])) {
		$imagem = imagecreatefrompng($imagens[$random]);
	} elseif (eregi('jpeg', $aImgDados['mime'])) {
		$imagem = imagecreatefromjpeg($imagens[$random]);
	} else {
		exit;
	}
	
	// Criando nova imagem
	$nova = imagecreatetruecolor($largura, $altura);
	imagecopyresized ($nova, $imagem, 0, 0, 0, 0, $largura, $altura, $largura, $altura);

	imagepng($nova);
	imagedestroy($nova);
	imagedestroy($imagem);
	
?>

Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#8 Magus_

Magus_

    Normal

  • Usuários
  • 70 posts
  • Sexo:Masculino
  • Localidade:Braga / SP

Posted 08/04/2006, 19:09

Claro! Desta vez a imagem não é PNG nem GIF, é JPEG! =)

Veja assim:

<?php

	$imagens = array('http://img427.imageshack.us/img427/5927/avatar8dm.gif',
					 'http://img529.imageshack.us/img529/6676/avatar28av.gif',
					 'http://img529.imageshack.us/img529/1371/avatar34ih.gif',
					 'http://img529.imageshack.us/img529/2969/avatar42cu.gif'
					);

	// Selecionando uma imagem do array
	$random = rand(0, count($imagens) - 1);

	// Obtendo dados da imagem
	$aImgDados = getimagesize($imagens[$random]);
	$largura = $aImgDados[0];
	$altura  = $aImgDados[1];
	
	header('Content-type: '. $aImgDados['mime']);
	
	// Verificando se a imagem é um gif
	if (eregi('gif', $aImgDados['mime'])) {
		$imagem = imagecreatefromgif($imagens[$random]);
	} elseif (eregi('png', $aImgDados['mime'])) {
		$imagem = imagecreatefrompng($imagens[$random]);
	} elseif (eregi('jpeg', $aImgDados['mime'])) {
		$imagem = imagecreatefromjpeg($imagens[$random]);
	} else {
		exit;
	}
	
	// Criando nova imagem
	$nova = imagecreatetruecolor($largura, $altura);
	imagecopyresized ($nova, $imagem, 0, 0, 0, 0, $largura, $altura, $largura, $altura);

	imagepng($nova);
	imagedestroy($nova);
	imagedestroy($imagem);
	
?>


Valeu cara, agora funcionou.
Vou adpatar agora os outros avatars, vamos ver no que vai dar :D

Valeu mesmo (y)

Edit:

Funcionou perfeitamente, MUITO OBRIGADO MESMO! ;)

Edição feita por: Magus_, 08/04/2006, 20:35.





1 user(s) are reading this topic

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

IPB Skin By Virteq