Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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;
}Carregando comentários...