|
Recuperando a qualidade de uma imagem JPEGNas imagens trabalhadas automaticamente com Php, enfrentamos a perda da cor e a qualidade das mesmas.
Buscando em php.net consegui uma função que permite regenerar praticamente uma imagem com sua cor real, uma das principais deficiências quando usamos sistemas de Thumbnail.
Esta função é: imagecreatetruecolor($largura, $altura); O resto do processo já o conhecemos.
header("Content-type: image/jpeg");
$src_img= @imagecreatefromjpeg('A IMAGEM.JPG')
$dst_img = @imagecreatetruecolor($LARGURA,$ALTURA);
@imagecopyresized($dst_img, $src_img, 0,0,0,0, $LARGURA, $ALTURA, ImageSX($src_img), ImageSY($src_img));
@imagejpeg($dst_img);
@imagedestroy($dst_img);
Explicação:
Em primeiro lugar enviamos um cabeçalho puro com o tipo de documento:
header();
Salvamos na variável $src_img uma nova imagem criada de tipo JPEG a partir de A IMAGEM.JPG que será a imagem que redimensionaremos ou editaremos.
Logo, na variável $dest_img, Criamos uma imagem nova com cor REAL, esta será a que utilizaremos para mostrá-la, observe que não estão definidas as variáveis $LARGURA, $ALTURA. Estas variáveis salvam o novo tamanho da imagem que obviamente será inferior à original, pelo qual pode se ajudar com a função getsizeimage(); que devolve um vetor com os píxels de X e Y , ou em seu efeito ImageSX() e ImageSY() para obter em base a esses parâmetros o novo tamanho uniforme e de acordo com nossa galeria de imagens.
Imagecopyresized(), como o próprio nome diz, copia só partes de uma imagem REDIMENSIONADA .
Logo, mostramos a imagem com imagejpeg(); se queremos que se salve no diretório com suas respectivas permissões, agregaremos um novo parâmetro:
@imagejpeg($dst_img,'NOVAIMAGEM.JPG');
Destruímos a imagem para economizar memória utilizada por imagecreatefromjpeg() e os processos subseqüentes;
E como já sabemos, o @ (arroba) ao começo de cada função serve para evitar que se imprima o erro em tela. Se for de sua preferência se pode tirá-las.
Autoria e outras referências sobre este artigo
Manuais relacionados com este artigo
Através das categorias do nosso diretório podem ser encontrados outros tipos de recursos relacionados com este artigo: + Entrar em PHP + Entrar em Scripts em PHP
Comentários dos visitantes Os comentários dos visitantes são para ampliar a informação do artigo. Todos podem participar.
|