Ir ao conteúdo
  • Cadastre-se

Filtrar imagens em php


Karibeto

Posts recomendados

Olá minha gente

Vejam parte do código que eu tenho usado para filtrar as imagens que são carregadas para o servidor no blog q estou desenvolvendo:

function minimizar($file, $file_name, $ext){

//Criando a Imagem de Origem

switch ($ext){

case '.gif':

$imagem_orig = ImageCreateFromGIF($file);

break;

case '.jpg':

/*linha 103*/ $imagem_orig = ImageCreateFromJPEG($file);

break;

case '.jpeg':

$imagem_orig = ImageCreateFromJPEG($file);

break;

case '.png':

$imagem_orig = ImageCreateFromPNG($file);

break;

}

/*

Aqui ocorre um erro:

Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 8192 bytes) in /home/isainter/public_html/blog/criaPost.php on line 103

*/

$width_i = ImagesX($imagem_orig);

$height_i = ImagesY($imagem_orig);

//Selecionando Orientação

if ($_POST[orientacao] == "paisagem"){

$width_f = 400;

$height_f = 300;

}else{

$width_f = 300;

$height_f = 400;

}

//Criando proporção

if ($width_i > $width_f){

$proportion1 = $width_i/$width_f;

// echo "Proporção da largura: ".$width_i."/".$width_f." = ".$proportion1."

"; //TESTE!!!!!!!!

}

if ($height_i > $height_f){

$proportion2 = $height_i/$height_f;

// echo "Proporção da altura: ".$height_i."/".$height_f." = ".$proportion2."

"; //TESTE!!!!!!!!

}

$proportion = 1;

//Selecionando a maior proporção

if ($proportion < $proportion1){

$proportion = $proportion1;

}

if ($proportion < $proportion2){

$proportion = $proportion2;

}

//Proporcionando as dimenções

$height_f = $height_i/$proportion;

$width_f = $width_i/$proportion;

// echo "Proporção final = $proportion, era $width_i x $height_i e ficará $width_f x $height_f (LxH)."; //TESTE!!!!!!!!

//Cria Imagem dimensionada para o Thumbnail

$imagem_thumb = ImageCreateTrueColor($width_f, $height_f);

//Copia a Imagem de Origem para dentro da Imagem Thumbnail redimensionando

ImageCopyResampled($imagem_thumb, $imagem_orig, 0 , 0, 0, 0, $width_f, $height_f, $width_i, $height_i);

// ImageCopyResampled( dst_image , src_image , dstX, dstY, srcX, srcY, dstWidth, dstHeight, srcWidth, srcHeight)

//Salva o Thumbnail

ImageJPEG($imagem_thumb, "images/$file_name");

//Limpa a memória

ImageDestroy($imagem_orig);

ImageDestroy($imagem_thumb);

Ou seja, quase tudo funciona, só q a função construtora fundamental para se saber os parâmetos do thumbail ger um erro de memória quando o arquivo em questão ($file) tem dimensões muito grandes. Têm funcionado normalmente com imagens menores.

Alguém sabe me explicar porque esse erro ocorre e qual seria uma alternativa para que esse script funcionasse com qualquer imagem?

valeu aí pela ajuda!!!

:palmas:

Link para o comentário
Compartilhar em outros sites

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...