Merhaba arkadaşlar,
resim kücültme için thumbp dosyası kullanıyorum ama bazı zamanlar istedigim boyutlarda vermiyor. Bazı kısımları büyük bazı kısımları kücük cıkartabiliyor.
php doyası aşagıda yardımcı olursanız sevinirim teşekkurler
resim kücültme için thumbp dosyası kullanıyorum ama bazı zamanlar istedigim boyutlarda vermiyor. Bazı kısımları büyük bazı kısımları kücük cıkartabiliyor.
php doyası aşagıda yardımcı olursanız sevinirim teşekkurler
PHP:
<?php
/*
Dosya = thumb.php
Yazan = Tuncay KINALI (a.k.a. Sniper)
Görevi = parametre olarak verilen resmi istenilen boyutlarda küçültme, büyütme ve
orantılı olarak resmin içinden bir bölümü gösterme
Parametreler = "p": Üzerinde oynanacak resmin yolu
"w": Resmin maximum genişliği (opsiyonel)
"h": Resmin maximum yüksekliği (opsiyonel)
Tarih = 11.08.2007
*/
// JPG olarak çıktı vermesi için header'i ayarla
header("Content-Type: image/jpeg");
// Üzerinde oynanacak resmin yolunu query'den al
$p = $_GET['p'];
// İstenilen genişliği query'den al ve
// istenilen genişlik 1024px'den büyükse otomatikman 1024 pixele düşür
// bu sayede bandwidth'ini korumuş olursun
$w = $_GET['w'] > 1024 ? 1024 : $_GET['w'];
// İstenilen genişliği query'den al
$he = $_GET['h'] > 1024 ? 1024 : $_GET['h'];
// Resmin bilgilerini oku
$resimyol = getimagesize($p);
// Eğer maximum genişlik belirtilmişse ve maximum yükseklik belirtilmemişse
if(isset($w) && !isset($he)) {
// Yüksekliği otomatik ayarla
$h = round(($w*$resimyol[1])/$resimyol[0]);
// Maximum yükseklik belirtilip genişlik belirtilmemişse
} else if(isset($he) && !isset($w)) {
// Genişliği otomatik ayarla ve yüksekliği maximum yükseklikle sınırla
$w = round(($he*$resimyol[0])/$resimyol[1]);
$h = $he;
// Hem maximum genişlik hem de maximum yükseklik belirtilmişse
} else if(isset($w) && isset($he)) {
// Yüksekliği otomatik olarak hesapla, ileride lazım olacak
$h = round(($w*$resimyol[1])/$resimyol[0]);
// Hiçbir özellik belirtilmemişse resmi olduğu gibi göster
} else {
$w = $resimyol[0];
$h = $resimyol[1];
}
// Girilen resmin formatına göre resmi oluştur
switch($resimyol[2]) {
case 1: // GIF
$resim = imagecreatefromgif($p);
break;
case 2: // JPG
$resim = imagecreatefromjpeg($p);
break;
case 3: // PNG
$resim = imagecreatefrompng($p);
break;
}
// Thumbnail'i girilen değerlere göre oluştur
$thumb = imagecreatetruecolor($w, $h);
// Ve yeni boyutlandırılmış resmi thumbnail'e yaz
imagecopyresampled($thumb, $resim, 0, 0, 0, 0, $w, $h, $resimyol[0], $resimyol[1]);
// Eğer maksimum yükseklik belirtilmişse
if(isset($he)) {
// Maximum yüksekik resmin boyutlandırılmış halinin yüksekliğinden fazlaysa
// Siyah alanların görünmemesi için bunu resmin yüksekliğiyle eşitle
if($he>$h) $he = $h;
// İkinci thumbnail'i maximum genişlik ve yüksekliğe göre oluştur
$thumb2 = imagecreatetruecolor($w, $he);
// Ve ilk thumbnail'in içinden orantılı bir şekilde bu resmin içeriğini kopyala
imagecopy($thumb2, $thumb, 0, 0, 0, (($h-$he)/2), $w, $he);
$sonuc = $thumb2;
} else {
$sonuc = $thumb;
}
// Resmi oluştur
imagejpeg($sonuc,lisanssız,80);
// İşi bitti, imha et.
imagedestroy($sonuc);
?>