Ir para conteúdo

POWERED BY:

Arquivado

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

Anderson de Souza

[Resolvido] Criando thumb no upload

Recommended Posts

Olá pessoal!

Estou querendo fazer um thumb de cada imagem que eu fazer upload, mas só envia a original, os thumbs não estão enviando.

 

Segue o código

if(!empty($foto_pequena))
{		
	//$foto_pequena: nome da foto

	$foto_pequena_nome = $t."_".$foto_pequena;
	if(move_uploaded_file($_FILES[foto_pequena][tmp_name], "imagens/".$foto_pequena_nome)){
	$img = imagecreatefromjpeg("imagens/".$foto_pequena_nome);
	$he = imagesx($img);
	$wi = imagesy($img);
	$x = ($he/100)*20;
	$y = ($wi/100)*20;
	$img_nova = imagecreatetruecolor($x,$y);
	imagecopyresampled($img_nova,$img,0,0,0,0,$x,$y,$he,$wi);
	imagejpeg($img_nova,"imagens/".$foto_pequena_nome,90);
	imagejpeg($img,"imagens/".$foto_pequena_nome,100);
	imagedestroy($img_nova);
	imagedestroy($img);
	}
}

 

Não sei onde está o erro.

Valeu galera!

Compartilhar este post


Link para o post
Compartilhar em outros sites

move_uploaded_file($_FILES[foto_pequena][tmp_name], "imagens/".$foto_pequena_nome);
imagejpeg($img_nova,"imagens/".$foto_pequena_nome,90);
imagejpeg($img,"imagens/".$foto_pequena_nome,100);

 

você está usando sempre o mesmo nome

provavelmente a imagem está sendo sobrescrita

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então cara para tratamento de imagens que foram feitas em upload eu particularmente prefiro utilizar a classe Canvas.

http://www.daviferreira.com/blog/post/17/canvas--nova-classe-para-manipulacao-e-redimensionamento-de-imagens-com-php.html

 

Fazendo isso você já cria uma thumb com 400x200 cortando o que sobrar da imagem

$arquivoNovo = "img/foto.jpg";

require_once( 'canvas.php' );
$img->carrega( $_FILES['foto_pequena']['tmp_name'] )
    ->redimensiona( 400, 200, 'crop' )
    ->grava( $arquivoNovo );

 

 

Já dessa forma deixa com 400px de largura com altura variavel

require_once( 'canvas.php' );
$img->carrega( $_FILES['foto_pequena']['tmp_name'] )
    ->redimensiona( 400 )
    ->grava( $arquivoNovo );

 

E por ai vai, vendo o link que te passei você verá que é muito simples.

 

 

E se tiver que criar varias dimensões diferentes para um único arquivo só instanciar varios objetos:

 

 

 

$arquivoNovo = "img/foto"; // NOME DO ARQUIVO SEM A EXTENSÃO

require_once( 'canvas.php' );
$grande->carrega( $_FILES['foto_pequena']['tmp_name'] )
    ->redimensiona( 640, 480, 'crop' )
    ->grava( $arquivoNovo.'_G.jpg' );

$medio->carrega( $_FILES['foto_pequena']['tmp_name'] )
    ->redimensiona( 300, 200, 'crop' )
    ->grava( $arquivoNovo.'_M.jpg' );

$pequeno->carrega( $_FILES['foto_pequena']['tmp_name'] )
    ->redimensiona( 100, 100, 'crop' )
    ->grava( $arquivoNovo.'_P.jpg' );

 

Crio instancias $pequeno, $medio, $grande pois cada um é um objeto.

 

Dai em cima da imagem que foi feita o upload $_FILES['foto_pequena']['tmp_name'] eu redimenciono cada uma com o tamanho que desejo e gravo cada um com um final diferente no nome.

 

img/foto_G.jpg

img/foto_M.jpg

img/foto_P.jpg

 

 

Abraço

^_^

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado, vou estudar um pouco sobre essa parte, é muito interessante, fico muito grato irmão, valeu..

 

Não estou conseguindo fazer essa interligação com meu código, não está redimencionando minha imagem, pq???

Compartilhar este post


Link para o post
Compartilhar em outros sites

[resolvido]

Valeu galera pela atenção, consegui resolver o problema.

Segue o código.

 

                            if(!empty($foto_pequena))
                             {               
                               //$foto_pequena: nome da foto
                               //pegando a foto, fazendo o upload
                               $foto_pequena_nome = $t."_".$foto_pequena;
			move_uploaded_file($_FILES[foto_pequena][tmp_name], "imagens/".$foto_pequena_nome);

			//pegando as dimensoes reais da imagem, largura e altura
			list($width, $height) = getimagesize("imagens/".$foto_pequena_nome);

			//setando a largura da miniatura
			$new_width = 300;

			//setando a altura da miniatura
			$new_height = 300;

			//gerando a a miniatura da imagem
			$image_p = imagecreatetruecolor($new_width, $new_height);
			$image = imagecreatefromjpeg("imagens/".$foto_pequena_nome);
			imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

			//o 3º argumento é a qualidade da miniatura de 0 a 100
			imagejpeg($image_p, "imagens/p_".$foto_pequena_nome, 100);
			imagedestroy($image_p);
                             }

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.