Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
as fotos da galeria estão com pouca qualidade mais não sei aonde arrumar nesse codigo para que fiquem com qualidade 100% ou melhorzinho por que ta gerando imagens com 96 dpi e ta ruim
<?
$foto = $_GET['img']; // Caminho da foto
$cortar = $_GET['corta'];
#$tam = $_GET['tam']; // Configuracao do tamanho da imagem final
$largura_moldura = $_GET['x'];
$altura_moldura = $_GET['y'];
//Recebe o nome da imagem
$imagem = $foto;
function imageComposeAlpha( &$src, &$ovr, $ovr_x, $ovr_y, $ovr_w = false, $ovr_h = false)
{
if( $ovr_w && $ovr_h )
$ovr = imageResizeAlpha( $ovr, $ovr_w, $ovr_h );
/ Noew compose the 2 images /
imagecopy($src, $ovr, $ovr_x, $ovr_y, 0, 0, imagesx($ovr), imagesy($ovr) );
}
function imageResizeAlpha(&$src, $w, $h) $temp = imagecreatetruecolor($w, $h);
/* making the new image transparent */
$background = imagecolorallocate($temp, 0, 0, 0);
ImageColorTransparent($temp, $background); // make the new temp image all transparent
imagealphablending($temp, false); // turn off the alpha blending to keep the alpha channel
/* Resize the PNG file */
/* use imagecopyresized to gain some performance but loose some quality */
imagecopyresized($temp, $src, 0, 0, 0, 0, $w, $h, imagesx($src), imagesy($src));
/* use imagecopyresampled if you concern more about the quality */
//imagecopyresampled($temp, $src, 0, 0, 0, 0, $w, $h, imagesx($src), imagesy($src));
return $temp;
}
$proporcao_moldura = $largura_moldura / $altura_moldura;
$proporcao_moldura = round($proporcao_moldura, 2);
list($largura_orig, $altura_orig) = getimagesize($imagem); // Largura e Altura originais
if ($cortar==1) {} else {
if (($largura_orig < $largura_moldura)&&($altura_orig < $altura_moldura)) {
$theight = $altura_orig;
$twidth = $largura_orig;
} else {
$theight = $largura_moldura * $altura_orig / $largura_orig;
$twidth = $largura_moldura;
if ($theight > $altura_moldura) {
$theight = $altura_moldura;
$twidth = $altura_moldura * $largura_orig / $altura_orig;
}
}
$altura_moldura = $theight;
$largura_moldura = $twidth;
}
$proporcao = $largura_orig / $altura_orig;
$proporcao = round($proporcao, 2);
if ($proporcao == $proporcao_moldura) { // Se a proporção da imagem for IGUAL que 4/3
$largura_dest = $largura_moldura;
$altura_dest = $altura_moldura;
$tipo = null;$altura_dest = ($largura_moldura * $altura_orig) / $largura_orig;
$altura_dest = round($altura_dest, 0);
$largura_dest = $largura_moldura;
$tipo = "p";
}$largura_dest = ($altura_moldura * $largura_orig) / $altura_orig;
$largura_dest = round($largura_dest, 0);
$altura_dest = $altura_moldura;
$tipo = "r";
}
#die($tipo."|");
if ($tipo == "r") { // Se a foto é do tipo RETRATO (Vertical)
$x = $largura_dest - $largura_moldura;
$x = $x / 2;
$x = $x * (-1);
$y = 0;
}$y = $altura_dest - $altura_moldura;
$y = $y / 2;
$y = $y * (-1);
$x = 0;
} else {
$y = $altura_dest - $altura_moldura;
$x = $y;
}
$Extensao = strtolower(substr($foto,strlen($foto)-3,3));
// Início da Geração da Imagem
header('Content-type: image/jpeg');
//$imagem_dest = imagecreatetruecolor($largura_moldura, $altura_moldura);
$imagem_dest = imagecreatetruecolor($largura_moldura, $altura_moldura);
if ($Extensao=='gif') $imagem_orig = imagecreatefromgif($imagem);
else if ($Extensao=='png') $imagem_orig = imagecreatefrompng($imagem);
else $imagem_orig = imagecreatefromjpeg($imagem);
//imagecopyresized($imagem_dest, $imagem_orig, 0, 0, 0, 0, $largura_dest, $altura_dest, $largura_moldura, $altura_moldura);
imagecopyresampled($imagem_dest, $imagem_orig, $x, $y, 0, 0, $largura_dest, $altura_dest, $largura_orig, $altura_orig);
if ($Logomarca) {
$LogomarcaImg = imagecreatefrompng($LogomarcaArquivo);
$LogomarcaDimensoes = getimagesize($LogomarcaArquivo);
$LogomarcaX = 0;
$LogomarcaY = $altura_dest - $LogomarcaDimensoes[1];
imageComposeAlpha( $imagem_dest, $LogomarcaImg, $LogomarcaX, $LogomarcaY);
}
// Output
imagejpeg($imagem_dest, null, 100);
exit;
?>
Tente usando esta classe amigo http://phpbrasil.com/script/Dpu3WwDG9BID/thumbnails-com-tamanho-fixo-sem-estragar-a-imagem-php-oo. Talvez resolva seu problema.