Yazıda ilk resmi bulmak. PHP Yazımda, “Bir dahaki yazımda, aldığımız resimi hem küçültecek, hemde küçülttüğümüz resimi kaydedeceğiz. PHP resim dosyamızda ise fonksiyon her çağrıldığında, önce küçük resim klasöründe resim var mı buna bakacak, resim var ise resim üzerinde işlem yapmaksızın, hali hazır küçültülmüş resmi göstereceğiz. Yok ise yeni bir tane küçültülmüş resim oluşturacak, dosyaya kaydedeceğiz..” demiştim… Resim küçültme fonksiyonumuz aşağıdaki gibidir…
Kullanımı ise “<img src=”<?php resim($resim_yolu,200,200,90) alt=”.$baslik.” />” biçimindedir. Örneğin resimi veritabanından çektiğimizi düşünelim, bu halde önceki yazımda belirttiğim yol ile yazıdaki resimin yolunu alırız…
Örnek Uygulamayı Buradan İnceleyebilirsiniz..
Örnek Uygulamayı Buradan İndirebilirsiniz
Resim yolu örneği;
$resim_yolu = preg_match('@<img.+src="(.*)".*>@Uims', $icerik, $matches); if ( $resim_yolu ) $resim_yolu = $matches[1]; echo '<img src="'.resim($resim_yolu,200,200,90).'" alt = "" />';
Fonksiyonumuz;
function resim($img_src,$en=150,$boy=150,$kalite=100){ if (trim( $img_src ) == "") return false; $adlandir = explode( "/", $img_src ); $t = count($adlandir); $yeni_resim = $adlandir[$t-2]."-".$en."x".$boy."-".$adlandir[$t-1]; // eski klasorude sectik $yeni_resim = str_replace('%20', "-", $yeni_resim); $yeni_resim = preg_replace( '/[^a-zA-Z0-9_-]/s', '',$yeni_resim); // resim tipini al $type = strtolower(substr(strrchr( $img_src,"." ),1)); $resim_dosyasi = 'kucuk_resim'; // Kucultulmus resimlerin gosterilecegi ve kopyalanacagi klasor ismi $filename = $resim_dosyasi.'/'.$yeni_resim; // eger yok ise olustur if (!file_exists($resim_dosyasi)) mkdir($resim_dosyasi); if (!file_exists($resim_dosyasi)) return false; // resim var ise direk goster ve cik. if ( file_exists($filename) ) return $filename; // Yeni olcegi uyarla list($en_img, $boy_img) = getimagesize($img_src); // Resim olculerden kucuk ise islem yapma orjinali goster if ( $en_img <= $en and $boy_img <= $boy ) return $img_src; $oran = $en_img/$boy_img; $en/$boy > $oran ? $en = $boy*$oran: $boy = $en/$oran; // isle $image_p = imagecreatetruecolor($en, $boy); // gif ve png saydamlik ayari if($type == "gif" or $type == "png"){ imagecolortransparent($image_p,imagecolorallocatealpha($image_p, 0, 0, 0, 127)); imagealphablending($image_p, false); imagesavealpha($image_p, true); } switch($type) { case 'gif': $image = imagecreatefromgif($img_src); break; case 'png': $image = imagecreatefrompng($img_src); break; case 'bmp': $image = imagecreatefromwbmp($img_src); break; default: $image = imagecreatefromjpeg($img_src); } imagecopyresampled($image_p, $image, 0, 0, 0, 0, $en, $boy, $en_img, $boy_img); // Kaydet ve ekrana cikis yap if($type == "gif" ) { imagegif($image_p,$filename,$kalite); imagedestroy($image); return $filename; } elseif($type == "png" ) { imagepng($image_p,$filename); imagedestroy($image); return $filename; } elseif($type == "bmp" ) { imagewbmp($image_p,$filename); imagedestroy($image); return $filename; } else{ imagejpeg($image_p,$filename,$kalite); imagedestroy($image); return $filename; } }
1 Yorum
bu da önemli bir konu.. teşekkürler
fazla oluyorum ama yorum yapılan konuya başka yorumlar ya da cevap yazılınca eposta gelse süper olur. soru soruyor sonra fırsat olmuyor bakamıyor unutuyoruz. teşekkür edemiyoruz cevap yazılınca