Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

superkatatau

Probleminha com script

Recommended Posts

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:

 

- o script cria as imagens nos tamanhos corretos só que na imagem grande ela fica do tamanho do thumb e o resto tudo preto.

- as imagens geradas são gravadas no diretorio TMP do servidor e quero elas no diretório mini e grande ...respectivamente.

 

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 pessoal

Compartilhar este post


Link para o post
Compartilhar em outros sites

Carinha ^^ achei melhor fazer um outro com algumas coisas que ja tinha aqui pronto, da uma olhadinha bem comendato e tal

 

<?php	define("CAMINHO_FOTO", "fotos/");	define("CAMINHO_FOTO_GRANDE", CAMINHO_FOTO . "grande/");	define("CAMINHO_FOTO_PEQUENO", CAMINHO_FOTO . "pequeno/");		define("TAMANHO_GRANDE", "480");	define("TAMANHO_PEQUENO", "100");	if ($img = Upload($arquivo)) {		if(Diminuir_Largura($img, CAMINHO_FOTO_GRANDE, TAMANHO_GRANDE)) {			if(Diminuir_Largura($img, CAMINHO_FOTO_PEQUENO, TAMANHO_PEQUENO)) {				echo "OK =)";			} else {				die("Não foi possivel criar a imagem pequena");			}		} else {			die("Não foi possivel criar a imagem grande");		}	} else {		die("Não foi possivel efetuar o upload da imagem");	}	/******************************************************************************************************//******************************************************************************************************//******************************************************************************************************/		/**	 * Faz o upload de uma foto em um arquivo temporario	 * @name Upload	 * @param Object $arquivo	 *	   objeto do arquivo (nome do campo file)	 * @return string	 *	   nome da foto salva	 *	   -1 se não foi possivel completar o upload	 */	function Upload($arquivo) {		// Cria o nome do arquivo temporario		$arquivo_temporario = CAMINHO_FOTO . $arquivo['name'];		// Move o arquivo temporario		if (move_uploaded_file($arquivo['tmp_name'], $arquivo_temporario)) {			// Retorna o caminho da imagem			return $arquivo_temporario;		} else {			// Impossivel completar o upload			return -1;		}	}		/**	 * Retorna o tipo do arquivo	 * @name Tipo	 * @param String $imagem	 *	   caminho da imagem a ser verificada	 * @return string	 *	   extensão do arquivo	 *	   FALSE se o tipo não for compativel	 */	function Tipo($imagem) {		// Verifica o tipo mime do arquivo		$tipo = getimagesize($imagem);		// Tipo 2 representa jpg		if ($tipo[2] == 2) {			return 'jpg';		// Tipo 3 representa png		} elseif ($tipo[2] == 3) {			return 'png';		} else {			// Tipo não compativel			return FALSE;		}	}	/**	 * Diminui o tamanho da foto em largura, e aproxima a altura	 * @name Diminuir_Largura	 * @param String $imagem	 *	   caminho da foto a ser diminuida	 * @param String $destino	 *	   caminho de onde a foto será gravada	 * @param Integer $id	 *	   id da foto, será usado como nome	 * @param Integer $largura	 *	   largura final da foto	 * @return bool	 *	   TRUE se o tamanho foi alterado	 *	   -1 se o arquivo não existir	 *	   -2 se o tipo não for compativel	 */	function Diminuir_Largura($arquivo_origem, $diretorio_destino, $largura_aproximada) {		if (!file_exists($arquivo_origem)) {			return -1;		}		// Obtém a extensão pelo mime-type		$tipo = Tipo($arquivo_origem);		if (!$tipo) {			return -2;		}		// Nome do arquivo final		$arquivo_miniatura = $diretorio_destino . basename($arquivo_origem);		// Imagem de origem		if ($tipo == 'jpg') {			$imagem_origem = @imagecreatefromjpeg($imagem);		} elseif ($tipo == 'png') {			$imagem_origem = @imagecreatefrompng($imagem);		}		 		// Obtém as dimensões da imagem original		$origem_x = @ImagesX($imagem_origem);		$origem_y = @ImagesY($imagem_origem);		$x = $origem_x;		$y = $origem_y;		// Aqui é feito um cálculo para aproximar o tamanho da imagem ao valor passado em $largura_aproximada.		if ($x >= $y) {			if ($x > $largura_aproximada) {				$x1= (int)($x * ($largura_aproximada/$x));				$y1= (int)($y * ($largura_aproximada/$x));			} else {				// Mantém tamanho original para o thumb.				$x1= $x;				$y1= $y;			}		} else {			if ($y > $largura_aproximada) {				$x1= (int)($x * ($largura_aproximada/$y));				$y1= (int)($y * ($largura_aproximada/$y));			} else {				// Mantém tamanho original para o thumb.				$x1= $x;				$y1= $y;			}		}		$x = $x1;		$y = $y1;		// Cria a imagem destino		$imagem_final = @ImageCreateTrueColor($x, $y);		@ImageCopyResampled($imagem_final, $imagem_origem, 0, 0, 0, 0, $x + 1, $y + 1, $origem_x, $origem_y);		// O arquivo é gravado		if ($tipo == 'png') {			@imagepng($imagem_final, $arquivo_miniatura);		} elseif ($tipo == 'jpg') {			@imagejpeg($imagem_final, $arquivo_miniatura);		}		// A memória usada para tudo isso é liberada.		@ImageDestroy($imagem_origem);		@ImageDestroy($imagem_final);		return TRUE;	}}?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao seria melhor você redimencionar a sua imagem no HTML msm?

Compartilhar este post


Link para o post
Compartilhar em outros sites

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?

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok! belezavou dar uma olhada no meu acernal de script aki e ve se tenho algo que faça isso..

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo você já viu isso em algum lugar?caso sim post ai o URLAbraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok, guando chegar no meu trampo, vo te mandar uma classe que fiz pra isso

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.