Php ile Resmin Boyutlarını Değiştirme (Thumbnail Oluşturma)

Php ile bir fotoğraf galerisi oluştururken ya da bir içerik sisteminde önce küçük boyut fotoğrafını daha sonra büyük boyutunu gösterecekseniz bu çalışma işinize yarayabilir.

Php ile bir fotoğraf galerisi oluştururken ya da bir içerik sisteminde önce küçük boyut fotoğrafını daha sonra büyük boyutunu gösterecekseniz bu çalışma işinize yarayabilir.

Kodları açıklamaları ile yazıyorum.



// Karışıklık olmaması için her bir eklenen dosyayı eklenen zamana göre adlandıracağız

//Bu bölümde öncelikle dosyanın orjinalini sunucumuza yükleyeceğiz ve daha sonra chmod

//ile ftpden dosyaları çekmek için yetkilendireceğiz.Chmod yapmaz iseniz "Transfer failed"

//uyarısı ile karşılaşabilirsiniz...

$zaman = time() ;

$resim1 = $_FILES['resim1'] ; // "resim1" name  şekliyle formdan gelen post

$resimad = $zaman.".jpg";

$yuklenecekyer = "../bfoto/normalen/";

$hedef = $yuklenecekyer.$resimad;

move_uploaded_file( $resim1, $hedef );

chmod("$hedef", 0644);



//Daha sonra jpeg formatında upload edilen dosyaların boyutlandırılması aşamasına geliyoruz

$en="150" ;

$boy="200" ;

$eklenecekyer = "$hedef" ;

$kucukfotohedef="../bfoto/enkucuk/$resimad"; 

if($resim1_type=="image/pjpeg"){

$calistir=ImageCreateFromJPEG($eklenecekyer);

$orjinalen=ImageSx($calistir); // Orjinal eni

$orjinalboy=ImageSy($calistir); // Orjinal boyu

$kucukboy=imagecreatetruecolor($en,$boy);

imageCopyResized($kucukboy,calistir,0,0,0,0,$en,$boy,$orjinalen,$orjinalboy);

ImageJpeg($kucukboy,$kucukfotohedef);

chmod("$kucukfotohedef",0644);

}



//Png uzantılı dosyalar için

if($resim1_type=="image/png"){

$calistir=ImageCreateFromPNG($eklenecekyer);

$orjinalen=ImageSx($calistir); // Orjinal eni

$orjinalboy=ImageSy($calistir); // Orjinal boyu

$kucukboy=imagecreatetruecolor($en,$boy);

imageCopyResized($kucukboy,calistir,0,0,0,0,$en,$boy,$orjinalen,$orjinalboy);

ImagePng($kucukboy,$kucukfotohedef);

chmod("$kucukfotohedef",0644);

}



//Bmp uzantılı dosyalar için

if($resim1_type=="image/bmp"){

$calistir=ImageCreateFromBMP($eklenecekyer);

$orjinalen=ImageSx($calistir); // Orjinal eni

$orjinalboy=ImageSy($calistir); // Orjinal boyu

$kucukboy=imagecreatetruecolor($en,$boy);

imageCopyResized($kucukboy,calistir,0,0,0,0,$en,$boy,$orjinalen,$orjinalboy);

ImagePng($kucukboy,$kucukfotohedef);

chmod("$kucukfotohedef",0644);

}



//Gif uzantılı dosyalar için

if($resim1_type=="image/gif"){

$calistir=ImageCreateFromGIF($eklenecekyer);

$orjinalen=ImageSx($calistir); // Orjinal eni

$orjinalboy=ImageSy($calistir); // Orjinal boyu

$kucukboy=imagecreatetruecolor($en,$boy);

imageCopyResized($kucukboy,calistir,0,0,0,0,$en,$boy,$orjinalen,$orjinalboy);

ImagePng($kucukboy,$kucukfotohedef);

chmod("$kucukfotohedef",0644);

}

// Örnekte de olduğu gibi mevcut upload edilen bir resim dosyasını önce orjinal halinde

// yükledik daha sonra ise resim dosyasını jpeg,png,bmp,gif uzantısına göre boyutunu

// tekrar ölçeklendirdik ve ona göre çıktısını aldık sunucuya aktardık.

  • Etiketler;
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

Elinize sağlık güzel olmuş , En ve boy değerini sabit verildiğinde resmin orjinal hali çok bozulmakda ,Bunun yerine eğer eni sabit verirsek boyuda ona göre orantılıyıcak bir döngü de yazmalıyız.
Evet bu yaptığım örnek ; belki de haber portallarında ya da kalıp şeklinde siteye entegre edilecek yerlerde mesela 272*204 haber sitelerinin fotoğraf ölçütleri standart bu olur.Ben de buna göre bir çalışma yaptım.Tabiki de sadece en ya da sadece boya göre de ayarlama yapılır.Hatta öyle bir çalışma yapayım.Tşkler
Selam, Bu sitedeki dersler gerçekten kalite seviyesi yüksek öncelikle kutluyorum. XAMPP Control Panel bunu yeni indirdim bununla ilgili örnek olarak bu dersi nasıl websiteme uygulayabilirim. Bu konuda da ders hazırlayabilirmisiniz. Eğer mümkünse Sipariş Formu örneği hazırlanabilirmi. Atlamadan geçmiyim ben bir flash kullanıcısıyım bugünlerde php salgını yedim herhalde daha çok öğrenmek istiyorum. Şimdiden teşekkürler..
Konuyla ilgili daha açıklayıcı örnek bir çalışma gösterebilirsen sana yardımcı olabilirim
kardeş çok teşekkürler eline zamanına ve bilgine sağlık....
cok tesekkur ederım net bır anlatım yaptıgın ıcın neyın ne oldugunu soylemenen gercekten cok ıyı
bu ne yha bu nee dayanamadım narinim yorum yazıyım dedim :-dusun:
hedef olarak 0644 demiş. O bize neyi gösteriyor?
çok güzel bir ders fakat bmp uzantılı dosyalarda acaba hata vermiyormu? şu an deneme imkanım yok ama daha öncesinde sanki bmp dosyaları için bunu yapamamıştım..
iyi günler çok güzel bir ders... fakat daha önce kullandığımda sanki bmp dosyaları için bu işlemi yapamıoyordum diye hatırlıyorum.. yani bmp dosya türü olanlar için olmuyordu.. şu an deneme imkanım yok... bmp dosyaları için bir sorun yoktur umarım..
evet güzel bir çalışma özellikle haber sistemi için kullanışlı teşekkürler.
elinize sağlık çok güzel bir anlatım olşuş
bir forma bağlayınca bu kodlar çalışıyor mu? ben denedim ama çalıştıramadım... [code]Warning: chmod() [function.chmod]: No such file or directory in /home/***/public_html/upload_deneme/php_upload_resim_boyut.php on line 12[/code] hatası alıyorum, nedir sorun? klasörlerin chmod değerini 644 yaptım hatta 777 bile yapıp denedim yine olmadı, yardım edebilir misiniz?
no such file or directory .. hatası vermiş Dizin adresini doğru olarak verdiniz mi?
evet birebir kullandım kodu zaten sadece klasörü yerini değiştirdim [code]$yuklenecekyer = "large/";[/code] ve [code]$kucukfotohedef="small/$resimad"; [/code] yaptım
İşte o dosyaların olmadığını satır 12deki chmod komutunu yapamadığını belirtiyor dosya uzantılar tam uzantı olarak girmelisiniz.
large ve small diye bir satır var ve chmod ayarları 644 yapmış durumda. kodları aynen yazıp kendiniz denerseniz olmadığını göreceksiniz

Yukarı Git