Merhabalar,
Bir blog scriptinde upload ile yazıya resim ekliyoruz fakat yazıda boyutlandırdığı için netliği gidiyor. Yazı sayfasında width ve height ile boyutlandırıyoruz. Resim netliği gitmemesiiçin php'de nasıl bir yol izleyebilirim?
resimlerde netlik
7
●598
- 20-11-2012, 22:26:22Üyeliği durdurulduÇok uğraştırıyor maalesef. Güzel bir şekilde boyutlandırma yapan bir fonksiyon mevcutmudur?miscel adlı üyeden alıntı: mesajı görüntüle
- 20-11-2012, 23:41:04Üyeliği durdurulduKendi kullandıgım kütüphaneyi paylaşıyorum Orantılı küçültebilirsiniz resimleri.
resim_kaydet.php i aşşagıdaki gibidir.
function boyutlaKaydet($resim,$tmp,$max_en,$max_boy){ ob_start(); $boyut = getimagesize($tmp); $en = $boyut[0]; $boy = $boyut[1]; $x_oran = $max_en / $en; $y_oran = $max_boy / $boy; if(($en <= $max_en) and ($boy <= $max_boy)){ $son_en = $en; $son_boy = $boy; } else if (($x_oran * $boy) < $max_boy){ $son_en = $max_en; $son_boy = ceil($x_oran * $boy); } else { $son_en = ceil($y_oran * $en); $son_boy = $max_boy; } $uzanti = strtolower($boyut["mime"]); switch($uzanti){ case "image/gif": $eski = imagecreatefromgif($tmp); $yeni = imagecreatetruecolor($son_en,$son_boy); imagecopyresampled($yeni,$eski,0,0,0,0,$son_en,$son_boy,$en,$boy); //imagegif($yeni,$resim); break; case "image/x-png": $eski = imagecreatefrompng($tmp); $yeni = imagecreatetruecolor($son_en,$son_boy); imagecopyresampled($yeni,$eski,0,0,0,0,$son_en,$son_boy,$en,$boy); break; case "image/png": $eski = imagecreatefrompng($tmp); $yeni = imagecreatetruecolor($son_en,$son_boy); imagecopyresampled($yeni,$eski,0,0,0,0,$son_en,$son_boy,$en,$boy); //imagepng($yeni,$resim); break; case "image/jpeg": case "image/pjpeg": case "image/jpg": $eski = imagecreatefromjpeg($tmp); $yeni = imagecreatetruecolor($son_en,$son_boy); imagecopyresampled($yeni,$eski,0,0,0,0,$son_en,$son_boy,$en,$boy); break; default: die('Sadece Resim Dosyasý Gönderebilirsiniz'); } imagejpeg($yeni,$resim); imagedestroy($eski); imagedestroy($yeni); }
UPLOAD.PHP aşşagıdaki gibidir
include('../harici/resim_kaydet.php'); $randla1 = rand(111111,99999); $klasor = "../img/"; $klasor_kucukresim = "../img/kucuk/"; $resim = $klasor.$randla1.".jpg"; $ufakresim = $klasor.$randla1.".jpg"; $resimBuyukW = 500; $resimBuyukH = 500 ; $resimUfakW = 100; $resimUfakH= 100 ; $SqlREsimadi= $randla1.".jpg"; //Resmin SQLde kayıt ismi bu şekilde olacaktır örn : 23532.jpg boyutlaKaydet($resim,$_FILES["resim"]["tmp_name"],$resimBuyukW,$resimBuyukH); boyutlaKaydet($ufakresim,$_FILES["resim"]["tmp_name"],$resimUfakW ,$resimUfakH); //Birden fazla resmi diledigin oranlarda orantılı olarak kücültebilir ve kaydedebilirsin. $baglanti->query("insert into galeri (galeri) VALUES('".$SqlREsimadi."')"); //Yukardaki gibi SQL işlemi $SqlResimadi olarak yapabilirsin. - 22-11-2012, 15:07:25resize classlarını resmi gösterirken değil kaydederken kullanmak lazım.Nyks adlı üyeden alıntı: mesajı görüntüle
- 22-11-2012, 15:14:24Üyeliği durdurulduwp eklentisi olan thimbtumb'ı kullanmanı tavsiye ederim.
yüklediğin resmi nereye koyacaksın?
- 600px genişliğinde blog posta, o zaman thimbtumb'la oranlı bir biçimde ekle gitsin
thumbnail mi lazım?
-thimbtumb'la 150*150 px'e ayarla gitsin.
vs vs geliştirilebilir
güzel bi eklentidir, tavsiye ederim. Kodlarını kendi sitene uyarlayabilirsin.
güzel bi eklentidir, tavsiye ederim. Kodlarını kendi sitene uyarlayabilirsin.