php ile fotoğrafı yeniden boyutlandırma
merhaba arkadaşlar php ile fotoğraf yükleme işlemlerini
gerçekleştirdim fakat her kullanıcının yüklediği fotoğraflar
farklı çözünürlüklerde oluyor, fotoğrafları yuvarlak hale getirdiğim için
border-radius:50% şeklinde orantısız bir şekilde görünüyor. fotoğrafı kare
haline getirçek istiyorum mesela 500*800 olan fotoğraf çözünürlüğünü 400*400
nasıl yapabilirim?
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (4)
yazmış olduğun kodlarda düzenleme yaptım eski kodları sil allta vermiş olduğum kodları yapıştır
resim boyutu 400 piksel kayıt eder yani 400x400 şeklinde
ve css alanından border değerleri için border-radius:50%'u bulup sil veya 0 yap
umarım bu cevabım size yardımcı olur şayet yardımcı olmuyorsa,
yazın size daha farklı bir yöntem sunayım..
<?php
header('Content-type: image/jpg');
$dosya = 'ben.jpg';
list($genislik, $yukseklik) = getimagesize($dosya);
$boyut = 400;
$oran = $genislik / $boyut;
$yeni_genislik = $genislik / $oran;
$yeni_yukseklik = $yukseklik / $oran;
$mevcut_resim = imagecreatefromjpeg($dosya);
$yeni_resim = imagecreatetruecolor($yeni_genislik, $yeni_yukseklik);
imagecopyresampled($yeni_resim, $mevcut_resim, 0, 0, 0, 0, $yeni_genislik, $yeni_yukseklik, $genislik, $yukseklik);
imagejpeg($yeni_resim);
?>
Kullanıcının resmini kırpmadan 500x800 resmi 500x500 e resize yaparsan sıkıştırıp daraltmış olursun ve resim orijinal görünmez.
Kırparak düşürmek istersen de nereden kırpacağına senin karar vermen hoş olmaz, bu yüzden kullanıcıyı kare resim yüklemeye veya
neresinden kırpılacağına kendisi karar vermeye zorlamak için şu videodaki gibi bir metod uygulamanda yarar var.
<?php
header('Content-type: image/jpg');
$dosya = 'ben.jpg';
$oran = 0.2;
list($genislik, $yukseklik) = getimagesize($dosya);
$yeni_genislik = $genislik $oran;
$yeni_yukseklik = $yukseklik $oran;
$mevcut_resim = imagecreatefromjpeg($dosya);
$yeni_resim = imagecreatetruecolor($yeni_genislik, $yeni_yukseklik);
imagecopyresampled($yeni_resim, $mevcut_resim, 0, 0, 0, 0, $yeni_genislik, $yeni_yukseklik, $genislik, $yukseklik);
//imagecopyresized($yeni_resim, $mevcut_resim, 0, 0, 0, 0, $yeni_genislik, $yeni_yukseklik, $genislik, $yukseklik);
imagejpeg($yeni_resim);
//imagejpeg($yeni_resim, 'yeni_resim.jpg', 100); // oluşan resmi yeni_resim.jpg olarak %100 kalitede kaydet.
?>