Redirecionar imagem proporcionalmente.
Olá.
Fiz um script em PHP de upload de imagem, indiquei um padrão de redimensionamento dela para salvar na pasta, sendo que muitas das imagens que faço upload a mesma fica esticada ou para os lados ou para cima. (width - height). queria saber se com base no código que fiz é possível adapta-lo para fazer UP da imagem com o redimensionamento, sendo que diminuído proporcionalmente com base nas (width - height) indicadas.
O script faz elabora 2 tipos de imagem cada uma com um tamanho diferente e em ambos os casos a imagem fica esticada.
desde já agradeço.
date_default_timezone_set('America/Sao_Paulo');
$date = date("d/m/Y h:i");
$path = "../../media/images/thumbs/";
$small = "../../media/images/thumbs/small/";
$medium = "../../media/images/thumbs/medium/";
$valid_formats = array("jpg", "png");
if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST" and isset($_FILES["uploadpri"])){
$captureId = $_POST["idpost"];
$name = $_FILES['uploadpri']['name'];
$size = $_FILES['uploadpri']['size'];
//Pesquisar
$squery_pesquise=$conexaoDB->query("SELECT * FROM postagens WHERE id_post='$captureId'");
$squery_cout=$squery_pesquise->fetch_assoc();
$veri = $squery_pesquise->num_rows;
$photoAtual = $squery_cout['imagem'];
if(strlen($name)){
list($txt, $ext) = explode(".", $name);
if(in_array($ext,$valid_formats)){
if($size<(1024*1024)){
$tmp = $_FILES['uploadpri']['tmp_name'];
$typeIMG = $_FILES['uploadpri']['type'];
$largura_small = 481;
$altura_small = 321;
$largura_medium = 381;
$altura_medium = 221;
if($typeIMG == 'image/jpeg'){
$foto = imagecreatefromjpeg($tmp);
}elseif($typeIMG == 'image/png'){
$foto = imagecreatefrompng($tmp);
}
$x = imagesx($foto);
$y = imagesy($foto);
$novaimg_small = imagecreatetruecolor($largura_small, $altura_small);
imagecopyresampled($novaimg_small, $foto,0,0,0,0,$largura_small, $altura_small, $x, $y);
$novaimg_medium = imagecreatetruecolor($largura_medium, $altura_medium);
imagecopyresampled($novaimg_medium, $foto,0,0,0,0,$largura_medium, $altura_small, $x, $y);
//Muda o nome da imagem, colocando microsegundos e registrando largura e altura no nome da imagem. substitue espaços em branco e traços baixos;
$newimager = time().substr(str_replace(" ", "_", $x.''.$y.'.'.'img'.'-thumd'), 5).".".$ext;
//Caso a imagem tenha um type jpeg
if($typeIMG == 'image/jpeg'){
//move a imagem já cortada para a pasta
imagejpeg($novaimg_small, $small.$newimager,70);
imagedestroy($novaimg_small);
imagedestroy($foto);
//medium
imagejpeg($novaimg_medium, $medium.$newimager,70);
imagedestroy($novaimg_medium);
//ou png
}elseif($typeIMG == 'image/png'){
//move a imagem já cortada para a pasta
imagepng($novaimg_small, $small.$newimager,70);
imagedestroy($novaimg_small);
imagedestroy($foto);
//medium
imagepng($novaimg_medium, $medium.$newimager,70);
imagedestroy($novaimg_medium);
}
if($photoAtual>=1){
//Apagar arquivo da pasta do servidor
$patch_home_small ='../../media/images/thumbs/small/';
$arquivo_small = $patch_home_small.$photoAtual;
$patch_home_medium ='../../media/images/thumbs/medium/';
$arquivo_medium = $patch_home_medium.$photoAtual;
if (!unlink($arquivo_small)){}
if(!unlink($arquivo_medium)){}
}
if($veri >= 1){
$conexaoDB->query("UPDATE postagens SET imagem='$newimager' WHERE id_post='$captureId'");
}else{
$post = $conexaoDB->query("INSERT INTO postagens VALUES ('','".$captureId."','','rascunho','','".$date."','','','','','','".$newimager."','NO','','','','','')");
}
echo "<div class=\"boxer-text-into\">
<button class=\" btn-flat blue-text btn white waves-effect tooltipped modal-trigger\" data-position=\"bottom\" data-delay=\"10\" data-tooltip=\"Editar\" type=\"button\" data-target=\"modal4\">
<i class=\"material-icons\">system_update_alt</i>
</button></div><img src='../media/images/thumbs/small/".$newimager."' class='uploadphotoClass' >";
}else
echo "Máximo 1MB";
}else
echo "Aceitos JPG/PNG";
}else
echo "Selecione uma Imagem";
exit;
}Discussão (1)
Carregando comentários...