Jump to content


Photo

Redimencionamento De Jpgs


  • Faça o login para participar
1 reply to this topic

#1 graffdesign

graffdesign

    Turista

  • Usuários
  • 28 posts
  • Sexo:Não informado
  • Localidade:Rio de Janeiro

Posted 28/06/2006, 15:12

Oi gente eu to fazendo um script que faz o upload de um JPG e redimenciona o arquivo. Meu script é:

<?PHP
// Constantes: variaveis que não mudam em todo o programa
// path do win2k. no unix, mude de 'd:/path' para '/home/usuario/www'
define('PATH_IMG', 'img/');
define('MAX_WIDTH', 80);
define('MAX_HEIGHT', 60);

# Pega onde está a imagem
$image_file = isset($_FILES["foto"]) ? $_FILES["foto"] : FALSE;
$image_path = PATH_IMG . $image_file["name"];

@move_uploaded_file($image_file["tmp_name"], $image_path);

# Carrega a imagem
$img = imagecreatefromjpeg($image_path);

echo "Imagem criada 1: ".$img."<br>";


// Se a imagem foi carregada com sucesso, testa o tamanho da mesma
if ($img) {
	// Pega o tamanho da imagem e proporção de resize
	$width = imagesx($img);
	$height = imagesy($img);
	$scale = min(MAX_WIDTH/$width, MAX_HEIGHT/$height);

	// Se a imagem é maior que o permitido, encolhe ela!
	if ($scale < 1) {
		$new_width = floor($scale * $width);
		$new_height = floor($scale * $height);
		// Cria uma imagem temporária
		$tmp_img = imagecreatetruecolor($new_width, $new_height);
		// Copia e resize a imagem velha na nova
		imagecopyresized($tmp_img, $img, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
		imagedestroy($img);
		$img = $tmp_img;
	}
}
echo "Imagem criada 2: ".$img."<br>";
// Cria uma imagem de erro se necessário
if (!$img) {
	$img = imagecreate(MAX_WIDTH, MAX_HEIGHT);
	imagecolorallocate($img, 204, 204, 204);
	$c = imagecolorallocate($img, 153, 153, 153);
	$c1 = imagecolorallocate($img, 0, 0, 0);
	imageline($img, 0, 0, MAX_WIDTH, MAX_HEIGHT, $c);
	imageline($img, MAX_WIDTH, 0, 0, MAX_HEIGHT, $c);
	imagestring($img, 2, 12, 55, 'erro ao carregar imagem', $c1);
}

// Mostra a imagem
?>
<img src="<?= $image_path; ?>" border="0" />

Bom os "echo's" que eu usei foram só para debug mesmo não contem com eles, nesse script eu to conseguindo fazer o upload, mas o redimencionamento não está sendo feito e os echos retornam o seguinte: Imagem criada 1: Resource id #4

Esses echos eu pego da variável que cria o JPG, ou seja: $img = imagecreatefromjpeg($image_path);

echo "Imagem criada 1: ".$img."<br>";

Tem alguma coisa de errado no meu script? alguém consegue indentificar algo errado?

grato por isso.

Minha outra duvida sobre esse mesmo assunto é: Precisarei fazer com esse script um multiplo upload, pensei em trabalhar com loop, qual a melhor forma de dar um loop nesse script?

valeu gente.

ninguém pode ajudar?

#2 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 28/06/2006, 18:07

Você está tentando imprimir um resource.

O que é um resource?
http://br2.php.net/m...es.resource.php

Lista de funções que retornam um resource:
http://br2.php.net/m...BR/resource.php
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29




0 user(s) are reading this topic

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

IPB Skin By Virteq