array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'tr', ), 'this' => array ( 0 => 'function.imagecopyresampled.php', 1 => 'imagecopyresampled', ), 'up' => array ( 0 => 'ref.image.php', 1 => 'GD ve Görüntü İşlevleri', ), 'prev' => array ( 0 => 'function.imagecopymergegray.php', 1 => 'imagecopymergegray', ), 'next' => array ( 0 => 'function.imagecopyresized.php', 1 => 'imagecopyresized', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'tr', 'path' => 'reference/image/functions/imagecopyresampled.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)
imagecopyresampled — Görüntünün bir parçasını örnekleyerek kopyalar ve boyutlandırır
$hedef
,$kaynak
,$hdf_x
,$hdf_y
,$kyn_x
,$kyn_y
,$hdf_gnş
,$hdf_yks
,$kyn_gnş
,$kyn_yks
imagecopyresampled() işlevi bir görüntü karesini boyutlandırarak başka bir görüntüye kopyalarken piksel renklerini ara değerlerle yumuşatarak görüntünün kalitesini korur.
Başka bir deyişle, imagecopyresampled() işlevi
kaynak
görüntünün kyn_x
,
kyn_y
noktasından, kyn_gnş
ve
kyn_yks
ile belirlenen parçasını alıp,
hedef
görüntünün hdf_x
,
hdf_y
noktasında hdf_gnş
,
hdf_yks
ile belirlenen parçasına yerleştirir.
Eğer kaynak ve hedef koordinatları ile genişlik ve yükseklikler farklıysa
parça yerleştirilirken küçültülür veya büyütülür. Koordinatlar parçanın sol
üst köşesini belirtir. Bu işlev aynı görüntünün içinde kopyalama yapmak
amacıyla da kullanılabilir (hedef
ve
kaynak
aynı ise), fakat parçaların üstüste gelmesi
halinde sonuç belirsizdir.
hedef
Görüntünün gönderileceği özkaynak.
kaynak
Görüntünün alındığı özkaynak.
hdf_x
Hedef görüntüdeki X koordinatı.
hdf_y
Hedef görüntüdeki Y koordinatı.
kyn_x
Kaynak görüntüdeki X koordinatı.
kyn_y
Kaynak görüntüdeki Y koordinatı.
hdf_gnş
Hedef görüntüdeki parça genişliği.
hdf_yks
Hedef görüntüdeki parça yüksekliği.
kyn_gnş
Kaynak genişliği.
kyn_yks
Kaynak yüksekliği.
Sürüm: | Açıklama |
---|---|
8.0.0 |
hedef ve kaynak
artık GdImage nesnesi; evvelce
resource türünde bir değer olmalıydı.
|
Örnek 1 - Basit örnek
Bu örnekte görüntü yarı boyutunda yeniden örneklenmektedir.
<?php
// Dosya ve yeni boyut
$dosya = 'test.jpg';
$oran = 0.5;
// İçerik türü
header('Content-type: image/jpeg');
// Yeni resmin boyutları
list($gen, $yük) = getimagesize($filename);
$yenigen = $gen * $oran;
$yeniyük = $yük * $oran;
// Görüntüleri yükleyelim
$hedef = imagecreatetruecolor($yeniger, $yeniyük);
$kaynak = imagecreatefromjpeg($dosya);
// Görüntüyü örnekleyelim
imagecopyresampled($hedef, $kaynak, 0, 0, 0, 0, $yenigen, $yeniyük, $gen, $yük);
// Görüntüyü çıktılayalım
imagejpeg($image_p, null, 100);
?>
Yukarıdaki örnek şuna benzer bir çıktı üretir:
Örnek 2 - Bir görüntünün orantılı olarak örneklenmesi
Bu örnekte görüntü 200 piksellik azami yükseklik ve genişlikle örneklenmektedir.
<?php
// Dosya
$dosya = 'dnm.jpg';
// Azami yükseklik ve genişlik
$gen = 200;
$yük = 200;
// İçerik türü
header('Content-type: image/jpeg');
// Yeni boyutları hesaplayalım
list($özgen, $özyük) = getimagesize($dosya);
$özoran = $özgen/$özyük;
if ($gen/$yük > $özoran) {
$gen = $yük*$özoran;
} else {
$yük = $gen/$özoran;
}
// Görüntüyü örnekleyelim
$hedef = imagecreatetruecolor($gen, $yük);
$kaynak = imagecreatefromjpeg($dosya);
imagecopyresampled($hedef, $kaynak, 0, 0, 0, 0, $gen, $yük, $özgen, $özyük);
// Görüntüyü çıktılayalım
imagejpeg($image_p, null, 100);
?>
Yukarıdaki örnek şuna benzer bir çıktı üretir:
Bilginize:
Paletli görüntülerdeki sınırlama (255+1 renk) nedeniyle bir sorun vardır. Görüntüyü yeniden örneklerken veya süzerken 255'ten daha çok renk gerekir ve bu nedenle yeniden örneklenen piksel renkleri için bir yaklaşım uygulanır. Paletli görüntüde yeni renk için paletten bir yer ayrılmaya çalışılır, eğer bu işlem başarısız olursa (teorik olarak) o renge en yakın renk seçilir. Bu her zaman görsel olarak en yakın renk olmayabilir. Bunun sonucu olarak kısmen boş görüntüler gibi tuhaf sonuçlar alınabilir. Bu gibi sorunlarla karşılaşmamak için hedef görüntü olarak gerçek renkli (örneğin, imagecreatetruecolor() ile oluşturulmuş) bir görüntü kullanın.