<?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?