Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal,
to aqui com esse problema nesse outro script.
esse script faz o seguinte:
ele pegal uma imagem de um campo, cria uma thumb e redimensiona ela pra um determinado tamanho.
O PROBLEMA É O SEGUINTE:
ta ai o codigo!
<?php//define a imagem$imagem = $_FILES['arquivo']['name'];$imagem_tmp = $_FILES['arquivo']['tmp_name'];$imagem_tmp2 = $_FILES['arquivo']['tmp_name'];$dir = "../mini";//configurações$max_x_t = 100;$max_y_t = 80;$max_x = 480;$max_y = 340;if(!file_exists($imagem_tmp)) { echo "Arquivo não encontrado!"; exit; }//monta nome mini$arquivo_mini = explode('.',$imagem_tmp);$arquivo_mini = $arquivo_mini[0]."_mini.jpg";//monta nome grande$arquivo_grande = explode('.',$imagem_tmp);$arquivo_grande = $arquivo_grande[0]."_grande.jpg";//le a imagem original e suas dimesões$imagem_orig = imagecreatefromjpeg($imagem_tmp);$orig_x = imagesx($imagem_orig);$orig_y = imagesy($imagem_orig);$imagem_orig_g = imagecreatefromjpeg($imagem_tmp2);$orig_x_g = imagesx($imagem_orig_g);$orig_y_g = imagesy($imagem_orig_g);// calcula grande if($orig_x_g > $orig_y_g) { $porcentagem = (100 * $max_x) / $orig_x_g; } else { $porcentagem = (100 * $max_y) / $orig_y_g; } $xg = $orig_x_g * ($porcentagem / 100); $yg = $orig_y_g * ($porcentagem / 100);// calcula mini if($orig_x > $orig_y) { $porcentagem = (100 * $max_x_t) / $orig_x; } else { $porcentagem = (100 * $max_y_t) / $orig_y; } $x = $orig_x * ($porcentagem / 100); $y = $orig_y * ($porcentagem / 100); //cria a img final$img_final = imagecreatetruecolor($x,$y);imagecopyresampled($img_final, $imagem_orig,0,0,0,0,$x,$y,$orig_x,$orig_y);$img_finalg = imagecreatetruecolor($xg,$yg);imagecopyresampled($img_finalg, $imagem_orig_g,0,0,0,0,$x,$y,$orig_x_g,$orig_y_g);//salvaimagejpeg($img_final, $arquivo_mini);imagejpeg($img_finalg, $arquivo_grande);imagedestroy($imagem_orig);imagedestroy($img_final);imagedestroy($img_finalg);imagedestroy($imagem_orig_g);?>
obrigado pessoalolá ScornInPC,testei o seu script, só que nao acontece nada;da a mensagem OK=);Nada mais acontece.Abraço
nao seria melhor você redimencionar a sua imagem no HTML msm?
nb-master: não pq se a imagem tem 2Mb, mais será exibida pequena, imagina carregar 2Mb pra mostrar uma imagenszinha. Agora imagina uma galeria @.o =)superkatatau: vou dar uma olhada, naum to com muito tempo, mais te darei um retorno ok?
ok! belezavou dar uma olhada no meu acernal de script aki e ve se tenho algo que faça isso..
obrigado galera?
estou tentando de ttttttudo mesmo, até bolei outra forma de escrever o script!
<?php//define a imagem$imagem = $_FILES['arquivo']['name'];$imagem_tmp = $_FILES['arquivo']['tmp_name'];//configurações$max_x_t = 100;$max_y_t = 80;if(!file_exists($imagem_tmp)) { echo "Arquivo não encontrado!"; exit; }//monta nome mini$arquivo_mini = explode('.',$imagem_tmp);$arquivo_mini = $arquivo_mini[0]."_mini.jpg";//le a imagem original e suas dimesões$imagem_orig = imagecreatefromjpeg($imagem_tmp);$orig_x = imagesx($imagem_orig);$orig_y = imagesy($imagem_orig);// calcula mini if($orig_x > $orig_y) { $porcentagem_t = (100 * $max_x_t) / $orig_x; } else { $porcentagem_t = (100 * $max_y_t) / $orig_y; } $x = $orig_x * ($porcentagem_t / 100); $y = $orig_y * ($porcentagem_t / 100); //cria a img final$img_final = imagecreatetruecolor($x,$y);imagecopyresampled($img_final, $imagem_orig,0,0,0,0,$x,$y,$orig_x,$orig_y);//salvaimagejpeg($img_final, $arquivo_mini);imagedestroy($imagem_orig);imagedestroy($img_final);////////////////grande////////////////////////////////////////////////////////////////////////////////////define a imagem$imagemg = $_FILES['arquivo']['name'];$imagemg_tmp = $_FILES['arquivo']['tmp_name'];//configurações$max_xg = 480;$max_yg = 340;if(!file_exists($imagemg_tmp)) { echo "Arquivo g não encontrado!"; exit; }//monta nome mini$arquivo_g = explode('.',$imagemg_tmp);$arquivo_g = $arquivo_g[0]."_g.jpg";//le a imagem original e suas dimesões$imagemg_orig = imagecreatefromjpeg($imagemg_tmp);$orig_xg = imagesx($imagemg_orig);$orig_yg = imagesy($imagemg_orig);// calcula g if($orig_xg > $orig_yg) { $porcentagem_g = (100 * $max_xg) / $orig_xg; } else { $porcentagem_g = (100 * $max_yg) / $orig_yg; } $xg = $orig_xg * ($porcentagem_g / 100); $yg = $orig_yg * ($porcentagem_g / 100); //cria a img final$img_finalg = imagecreatetruecolor($xg,$yg);imagecopyresampled($img_finalg, $imagemg_orig,0,0,0,0,$x,$y,$orig_x,$orig_y);//salvaimagejpeg($img_finalg, $arquivo_g);imagedestroy($imagemg_orig);imagedestroy($img_finalg);?>
SEPAREI O ARQUIVO_TMP EM 2 VARIAVEIS , MAS NÃO ESTA ADIANTANDO........
GERA UMA IMAGEM 1 THUMB CERTINHO E A OUTRA REDIMENSIONADA MAS COM O CONTEUDO DA THUMB E O RESTO PRETO.
OBRIGADO PELA AJUDA PESSOAL.
aBRAÇO
ScornInPC,quando puder me dar uma luz.......agradeço...to com a corda no pescoço aqui.....abraço
Amigo você já viu isso em algum lugar?caso sim post ai o URLAbraços...
ok, guando chegar no meu trampo, vo te mandar uma classe que fiz pra isso
Trutinha ^^ naum esqueci de você naum ok?? hoje a embratel mancou com a gente. Ficamos sem net o dia todo, e provavelmente amanha de manha tbmais prometo que logo que tiver net la, te dou uma mão com manipulação de imagens ok??
okabraçoPS.: AO nb-master,esse redimesionamento de imagens é bastante comum.Muito sites e sistemas de internet o tem.O problema é faze-lo funcionar!Abraço
E ae nb-master, seguinte, achei um codigo aqui, que foi a base do meu conhecimento em GD
primeiramente, crie um arquivo contendo <?php phpinfo(); ?>
e execute-o, veja se possui a extensão GD instalada, se naum possuir. Vá ao seu php.ini, e descomente a extenssão, e reinicie o servidor
segue o código funcionando. Acho que vai ficar mais claro que minha classe:
<?function verificaTipo($nomeCampo){ $arquivo = isset($_FILES["$nomeCampo"]) ? $_FILES["$nomeCampo"] : false; $tipo = explode("/", $arquivo["type"]); if ($tipo[0] != "image") return false; else return true;}function uploadImage($nomeCampo, $dir, $nomeNovo){ $arquivo = isset($_FILES["$nomeCampo"]) ? $_FILES["$nomeCampo"] : false; if ($nomeNovo) $nome = $dir."/".$nomeNovo; else $nome = $dir."/".strtolower(str_replace(" ", "_", $arquivo["name"])); if (file_exists($nome)) return -1; if (!verificaTipo($nomeCampo)) return -2; else if ($arquivo['size'] > 1333000) return -4; else { if (move_uploaded_file($arquivo['tmp_name'], $nome)) { //AQUI COMEÇA O THUMB $aprox = 116; $arquivo_miniatura = "img/mini_".$arquivo["name"]; //arquivo mini $img_origem = imagecreatefromjpeg($nome); //cria a origem $origem_x = ImagesX($img_origem); //pega a largura $origem_y = ImagesY($img_origem); //pega a altura $x = $origem_x; $y = $origem_y; if ($x >= $y) { if ($x > $aprox) { $x1= (int)($x * ($aprox/$x)); $y1= (int)($y * ($aprox/$x)); } else { $x1= $x; $y1= $y; } } else { if ($y > $aprox) { $x1= (int)($x * ($aprox/$y)); $y1= (int)($y * ($aprox/$y)); } else { $x1= $x; $y1= $y; } } $x= $x1; $y= $y1; //cria a imagem do thumbnail $img_final = ImageCreateTrueColor($x, $y); ImageCopyResampled($img_final, $img_origem, 0, 0, 0, 0, $x+1, $y+1, $origem_x, $origem_y); //salva a imagem imagejpeg($img_final, $arquivo_miniatura); //a memória usada para tudo isso é liberada. ImageDestroy($img_origem); ImageDestroy($img_final); return 1; } else { $this->erros = $arquivo["error"]; return -3; } }}?>da uma olhada no erro que gera!
200000) return -4; else { if (move_uploaded_file($arquivo['tmp_name'], $nome)) { //AQUI COMEÇA O THUMB $aprox = 116; $arquivo_miniatura = "img/mini_".$arquivo["name"]; //arquivo mini $img_origem = imagecreatefromjpeg($nome); //cria a origem $origem_x = ImagesX($img_origem); //pega a largura $origem_y = ImagesY($img_origem); //pega a altura $x = $origem_x; $y = $origem_y; if ($x >= $y) { if ($x > $aprox) { $x1= (int)($x * ($aprox/$x)); $y1= (int)($y * ($aprox/$x)); } else { $x1= $x; $y1= $y; } } else { if ($y > $aprox) { $x1= (int)($x * ($aprox/$y)); $y1= (int)($y * ($aprox/$y)); } else { $x1= $x; $y1= $y; } } $x= $x1; $y= $y1; //cria a imagem do thumbnail $img_final = ImageCreateTrueColor($x, $y); ImageCopyResampled($img_final, $img_origem, 0, 0, 0, 0, $x+1, $y+1, $origem_x, $origem_y); //salva a imagem imagejpeg($img_final, $arquivo_miniatura); //a memória usada para tudo isso é liberada. ImageDestroy($img_origem); ImageDestroy($img_final); return 1; } else { $this->erros = $arquivo["error"]; return -3; } } } ?>
Abraço
Carinha ^^ achei melhor fazer um outro com algumas coisas que ja tinha aqui pronto, da uma olhadinha bem comendato e tal