lostyazilim
tr.link

Php Yüklenen Resmin Boyutunu Nasıl Küçültürüm

2 Mesajlar 441 Okunma
lstbozum
tr.link

cc33 cc33 WM Aracı Kullanıcı
  • Üyelik 14.03.2020
  • Yaş/Cinsiyet 29 / E
  • Meslek web master
  • Konum Mersin
  • Ad Soyad Ç** C**
  • Mesajlar 75
  • Beğeniler 3 / 2
  • Ticaret 0, (%0)
include_once "baglanti.php";
if (isset($_FILES['p_photo'])) {
if (!$_FILES['p_photo']['error']) {
$turler = ['image/jpeg', 'image/png','image/gif']; // İizn verilen dosya türleri olsun
$uzanti = strrchr($_FILES['p_photo']['name'],'.'); // Yüklenen resmin uzantısını alıyoruz
$sayi2 = rand(1,489);
$resim_klasoru = 'uploads/'; // Bu kısım profil fotoğraflarını yüklemek istediğiniz klasör konumu olsun. Bu dosyanın bulunduğu dizinden itibaren yazın.
$dosya_adi =rand(1,100000).$uzanti; // Dosyanın adını sessionda tutulan karakter adı yaptık. dosyayı profil resmine çağırırken de klasör yolunda bu şekilde çağırın
$kadi = $_SESSION['id'];

$sor = mysql_query("Select * from karakter where id ='$kadi'");
$row = mysql_fetch_array($sor);
$profilfoto = $row['profilfoto'];

if (in_array($_FILES['p_photo']['type'], $turler)) { // Eğer dosya türü izin verilen dosya türleri arasında varsa
if (move_uploaded_file($_FILES['p_photo']['tmp_name'],$resim_klasoru.$dosya_adi)) {
$id = $_SESSION['id'];
$sor = mysql_query("Select * from karakter where id ='$id'");
while($row = mysql_fetch_array($sor)){
$degistir = $dosya_adi;
$profilfoto = mysql_query("Update karakter set profilfoto='$degistir' where id='$id'");
}
echo '
Yükleme başarıyla tamamlandı Bir Kaç Saniye İçinde Fotoğrafınız Güncellenecek';
header("refresh: 2; url=profiller.php");
// Burada veri tabanına kayıt işlemlerini gerçekleştirebilirsiniz. Bu örnek kodlara göre resmin kayıt olduğu konum uploads/resim_Adi.jpg gibi bir şey oldu. kayıt ederken de ona göre kayıt edersiniz.
} else {
echo 'Dosya yüklenirken bir hata oluştu';
}
} else {
echo 'Yalnızca jpeg, jpg, png ve gif uzantılı resimler yükleyebilirsiniz.!';
header("refresh: 2; url=bitcoin2.php");
}
}
}
?>




bu şekilde profil resmi yükletiyorum ama boyut sınırı ekletmek istemiyorum yüklenen resimin kalitesini düşürerek sunucuya yükletmek istiyorum kasmaması için bu kodlar arasında nasıl yaparım bunu
 

 

wmaraci
reklam

Abdullahx Abdullahx MW Aracı Kullanıcı
  • Üyelik 03.04.2019
  • Yaş/Cinsiyet 29 / E
  • Meslek .
  • Konum Trabzon
  • Ad Soyad A** K**
  • Mesajlar 905
  • Beğeniler 393 / 395
  • Ticaret 3, (%100)

const IMAGE_HANDLERS = [
IMAGETYPE_JPEG => [
'load' => 'imagecreatefromjpeg',
'save' => 'imagejpeg',
'quality' => 100
],
IMAGETYPE_PNG => [
'load' => 'imagecreatefrompng',
'save' => 'imagepng',
'quality' => 2
],
IMAGETYPE_GIF => [
'load' => 'imagecreatefromgif',
'save' => 'imagegif',
'quality' => 1
]
];
/**
* @param $src - geçerli bir dosya yeri
* @param $dest - geçerli bir dosya hedefi
* @param $targetWidth - istenen çıktı genişliği
* @param $targetHeight - istediğiniz çıktı yüksekliği veya boş
* @return mixed|null
*/
function yeniden_boyutlandır($src, $dest, $targetWidth, $targetHeight = null) {
$type = exif_imagetype($src);
if (!$type || !IMAGE_HANDLERS[$type]) {
return null;
}
$image = call_user_func(IMAGE_HANDLERS[$type]['load'], $src);
if (!$image) {
return null;
}
$width = imagesx($image);
$height = imagesy($image);
if ($targetHeight == null) {
$ratio = $width / $height;
if ($width > $height) {
$targetHeight = floor($targetWidth / $ratio);
}
else {
$targetHeight = $targetWidth;
$targetWidth = floor($targetWidth * $ratio);
}
}
$thumbnail = imagecreatetruecolor($targetWidth, $targetHeight);
if ($type == IMAGETYPE_GIF || $type == IMAGETYPE_PNG) {
imagecolortransparent(
$thumbnail,
imagecolorallocate($thumbnail, 0, 0, 0)
);
if ($type == IMAGETYPE_PNG) {
imagealphablending($thumbnail, false);
imagesavealpha($thumbnail, true);
}
}
imagecopyresampled(
$thumbnail,
$image,
0, 0, 0, 0,
$targetWidth, $targetHeight,
$width, $height
);
return call_user_func(
IMAGE_HANDLERS[$type]['save'],
$thumbnail,
$dest,
IMAGE_HANDLERS[$type]['quality']
);
}


Kullanılışı;
move_uploaded_file fonksiyonundan sonra yazın

resyukle($resim_klasoru.$dosya_adi, $resim_klasoru.$dosya_adi, 500)


Veya yazılanları yapabilirseniz bu konuma da göz atabilirsiniz.
mimarcan

kişi bu mesajı beğendi.


wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al