Bugüne kadar hazırladığım web siteleri çoğunlukla katalog tarzı ürün tanıtım siteleriydi. Bu sitelerde bir ürünün farklı ebatlarda resimlerini sitenin çeşitli yerlerinde kullanmam gerekiyordu. Zamanında buna çare olarak bir script hazırlamıştım. Script, kendisine parametre olarak gönderilen resmin istenilen boyutlarda bir küçüç kopyasını çalışma anında oluşturuyor ve tarayıcıya gönderiyordu. Böylelikle hem disk alanından kâr ediyor, hem de her boyut için manuel olarak tüm resimlerin thumbnailini oluşturma zahmetinden kurtuluyordum.
Bu scripti, ASP yazdığım zamanlarda ASPJpeg bileşeni kullanarak geliştirmiştim. PHP'ye geçince aynı işi yapan PHP kodlarını da hazırladım ama bu kodlar ASP'deki kadar hızlı çalışmıyordu. Resimlerin görüntülenmesinde gözle görülür bir yavaşlama söz konusuydu ama gerek zamansızlık, gerekse PHP alanında tecrübesiz olmamdan dolayı bu konunun üstünde fazla durmamıştım. Son birkaç gündür bu scriptle ilgilenme fırsatım oldu ve nasıl daha az kaynak tüketerek scripti daha verimli hale getirebilirim diye düşündüm. Madem her resmin thumbnail'i oluşturulup tarayıcıya gönderiliyor, neden bunları bir dosyaya kaydetmeyeyim? Hem bir sonraki çağırılışlarında direkt oluşturduğum dosyayı çağırırım ve işlemciyi yormam, hem de her resmin istediğim ebatlardaki thumbnaillerini elimi sürmeden oluşturmuş olurum.
Scriptin adı thumb.php, dışarıdan 3 parametre alıyor:
w ve h parametreleri opsiyonel olup istenirse her ikisinin de kullanılacağı gibi sadece biri de kullanılabilir. Hiçbirini kullanmamak resmi doğrudan çağırmakla eşdeğer olacağından bir anlam ifade etmez. Scriptin çalışma mantığı özetle şöyle:
Son olarak birkaç örnek kullanım ve bu kullanımlar sonucunda oluşacak dosya bilgilerini verdikten sonra kodları alabilirsiniz. Örnek kodlar 1280x960 px boyutlarında bir resim üzerinde çalıştırılmıştır.
|
|
|
|
|
|
Ve kodun tamamı: thumb.php
|
|
Not: Bu yazının bir kopyası da http://tuncay.kinali.net/php-ile-otomatik-thumbnail-olusturun.html adresinde yayınlanmaktadır.
Ellerine Sağlık. Kodlarını musayit vaktinde deneyeceğim. Şimdiden teşekkürler.
Kodunu denedim çok güzel fakat orantılı küçültmelerde sorun var.
bende bu sorundan muzdaripim kolay gelsin.
pillinetwork sitelerine yorum ekleyebilmek ve daha fazlası için, üye olun ya da giriş yapın.
Nokta ve pilli ortak yapımı olan kodaman.org hep birlikte içerik üretip gelirini yazarları ile paylaştığımız kolektif bir kod yazarları blogudur. Siz de katılabilirsiniz.