PHP Resim İşlemleri GD kütüphanesi.
Merhabalar;
Hocam bir sitede makale listesinde phpkodlari.com ana sayfasındaki yeni dersler listesi gibi resimli makale listesi olacak. Fakat resimlerin boyları problem oluyor.
Resim alanım 200*180 ama daha büyük gelen resimler daralıp orantısı bozuluyor hiçbir anlam ifade etmeyen resimler haline geliyor.
Bunun PHP ile yapılabilcek bir çaresi yokmudur. gelen resmin boyutunu öğrenip ona göre orantılı küçültme falan resimden kesme işlemi var ama kesmeden bu orantıyı sağlamalıyız.
pratik
1- php ile resmi kırparak yeniden boyutlandırırsın. benim tercihim.
2- <img src="resim.jpg" width="200"> yazarsanız ve height vermezsin. böylece yüksekliği ona göre oranlanır.
2. yöntemi denedimde orantıyı koruduğumda durum çok farklı oluyor. genişliği korusam sağdan soldan alan oynama oluyor.
yüksekliği korusam bu defa resmin boyutuna göre alta atıyor yanındaki yazıyı.
peki hocam şu kırpma metodunu nasıl kullanacağım.
tüm sorunlarının çözümü
ekteki dosyayı include et
kullanılışı :
$savepath = 'images/';
$name = 'resimin_adi.jpg';
$myres = new MCAresim($_FILES['resim']['tmp_name'][$key]);
$myres->auto(200,180);
$myres->kaydet($savepath.$name);
class içindeki tüm fonksiyonlar ve özellikleri :
$resim = new new MCAresim($_FILES['resim']['tmp_name'][$key]);
yeni bir nesne oluştur, içine orjinal resmi yükle.
Yukarıdaki örnek form ile yüklenen resim adlı bir resmi class a yükler
info fonksiyonu :
parametre : tip
varsayilan : ""
kullanılışı: $resim->info();
resim için getimagesize değerini döndürür
$resim->info("en");
resmin enini döndürür
$resim->info("boy");
resmin boyunu döndürür
kirp fonksiyonu
parametre : bX , bY, kEn, kBoy
varsayilan : 0 , 0, 100, 100
kullanılışı : $resim->kirp(50,50,70,150);
resmin içinden bX, by koordinatlarından başlayarak kEn, kBoy ebatında parça kırpar ve parçayı geri döndürür.
kucult fonksiyonu
parametre : hEn, hBoy
varsayılan: 100,100
kullanılışı : $resim->kucult(200,100);
resmi verilen ölçüye küçültür. bu küçültme yapılırken resmin en boy oranı bozulabilir.
auto fonksiyonu
parametre : hEn, hBoy
varsayılan : 100,100
kullanılışı: $resim->auto(120,120);
resmi verilen ölçüye küçültür, küçültme yaparken en boy oranına göre gerekirse resmin yanlarından veya alt-üstünden otomatik olarak kırpma yapar. resimlerin en boy oranını bozmadan farklı ölçüye küçültülmesi için mükemmeldir.
kaydet fonksiyonu
parametre : nName, nPath
varsayılan : mca.jpg , ./
kullanılışı: $resim->kaydet('benimresmim.jpg','resimklasoru');
yurakıdaki fonksiyonlardan biri ile oluşturulmuş olan resmi kayıt eder, kayıt için resim adı ve klasör yolunu vermeniz gerekir.
Not : class sadece jpg resimleri desteklemektedir. gif, png, bmp gibi formatları işlemez.
Ekteki dosya :
Çok sağolun hocam çok işe yaradı. Zaten dosyanın başındaki CLASS yazısı adamı cezbediyor..
Söylemeden de edemem. Alttaki notu gördüğümde başım döndü bi an.
nursin png bmp ve gif özelliği çok kolayca eklenebilir. ben öylesine hızlıca yazmıştım bunu... :D
farkettim hocam teşekkür ederimm..