Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá amigos, seria possível atraves do meu codigo abaixo uma imagem retangular ou não quadrada ele pegar somente uma parte dela pois muitas imagens fica tipo amassada, se alquém poder me ajudar.
Obrigado desde já.
// recebendo a url da imagem.
$x = $_GET["x"];
$y = $_GET["y"];
$filename = $_GET["img"];
// Verifica se as proporções são numericas.
if ((is_numeric($x)) && (is_numeric($y)) && ($x < 600) && ($y < 600)){
$file = explode(".", $filename);
$index = count($file) - 1;
$extention = $file[$index];
// Pegando as dimensoes reais da imagem, largura e altura.
list($width, $height) = getimagesize($filename);
// Setando a largura da miniatura.
$new_width = $x;
// Setando a altura da miniatura.
$new_height = $y;
// Gerando a a miniatura da imagem.
$image_p = imagecreatetruecolor($new_width, $new_height);
switch ($extention) {
case "gif":
// Cabeçalho que ira definir a saida da pagina.
header('Content-type: image/gif');
$image = imagecreatefromgif($filename); break;
break;
case "jpg":
// Cabeçalho que ira definir a saida da pagina.
header('Content-type: image/jpeg');
$image = imagecreatefromjpeg($filename); break;
break;
case "png":
// Cabeçalho que ira definir a saida da pagina.
header('Content-type: image/png');
$image = imagecreatefrompng($filename); break;
break;
}
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
// Qualidade da imagem de 0 a 100.
switch ($extention) {
case "gif":
imagegif($image_p, null, 70);
break;
case "jpg":
imagejpeg($image_p, null, 70);
break;
case "png":
imagepng($image_p);
break;
}
imagedestroy($image_p);
}Carregando comentários...