Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
Karibeto

Filtrar imagens em php

Recommended Posts

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:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use imagens menores!

:P

Sério, qual o tamanho das tuas imagens...

Não há muito o que fazer não. Esse servidor é teu (próprio)?? Porque pelo jeito foi setado um limite de memória de 8Mega para o seu usuário.

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • É, o servidor é próprio.

    As imagens em que esse erro ocorrem geralmente são maiores que 1024 x 768, e o estranho (veja o erro) é que houve uma tentativa de alocar 8 KB num limite de 8MB e falhou!

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário

    Entre para seguir isso  





    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

    ×