imagecopyresampled

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagecopyresampledResmin bir parçasını örnekleyerek kopyalar ve boyutlandırır

Açıklama

imagecopyresampled ( resource $hedef , resource $kaynak , int $hdf_x , int $hdf_y , int $kyn_x , int $kyn_y , int $hdf_gnş , int $hdf_yks , int $kyn_gnş , int $kyn_yks ) : bool

imagecopyresampled() işlevi bir resim karesini başka bir resme boyutlandırarak kopyalarken piksel renklerini ara değerlerle yumuşatarak resmin görüntü kalitesini korur.

Başka bir deyişle, imagecopyresampled() işlevi hedef resmin hdf_x, hdf_y noktasından hdf_gnş, hdf_yks ile belirlenen parçasını alıp kaynak resmin kyn_x, kyn_y noktasında, kyn_gnş ve kyn_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ı resmin içinde kopyalama yapmak amacıyla da kullanılabilir (hedef ve kaynak aynı ise), fakat parçaların üstüste gelmesi halinde sonuç belirsizdir.

Değiştirgeler

hedef

Hedef resmin tanıtıcısı.

kaynak

Kaynak resmin tanıtıcısı.

hdf_x

Hedef resimdeki X koordinatı.

hdf_y

Hedef resimdeki Y koordinatı.

kyn_x

Kaynak resimdeki X koordinatı.

kyn_y

Kaynak resimdeki Y koordinatı.

hdf_gnş

Hedef resimdeki parça genişliği.

hdf_yks

Hedef resimdeki parça yüksekliği.

kyn_gnş

Kaynak resimdeki parça genişliği.

kyn_yks

Kaynak resimdeki parça yüksekliği.

Dönen Değerler

Başarı durumunda TRUE, başarısızlık durumunda FALSE döner.

Örnekler

Örnek 1 - Basit örnek

Bu örnekte resim 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;

// Resimleri yükleyelim
$hedef imagecreatetruecolor($yeniger$yeniyük);
$kaynak imagecreatefromjpeg($dosya);

// Resmi örnekleyelim
imagecopyresampled($hedef$kaynak0000$yenigen$yeniyük$gen$yük);

// Resmi çıktılayalım
imagejpeg($image_pnull100);
?>

Yukarıdaki örnek şuna benzer bir çıktı üretir:

imagecopyresampled.jpg

Örnek 2 - Bir resmin orantılı olarak örneklenmesi

Bu örnekte resim 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;
}

// Resmi örnekleyelim
$hedef imagecreatetruecolor($gen$yük);
$kaynak imagecreatefromjpeg($dosya);
imagecopyresampled($hedef$kaynak0000$gen$yük$özgen$özyük);

// Resmi çıktılayalım
imagejpeg($image_pnull100);
?>

Yukarıdaki örnek şuna benzer bir çıktı üretir:

imagecopyresampled_2.jpg

Notlar

Bilginize:

Paletli resimlerdeki sınırlama (255+1 renk) nedeniyle bir sorun vardır. Resmi 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 resimde 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ş resimler gibi tuhaf sonuçlar alınabilir. Bu gibi sorunlarla karşılaşmamak için hedef resim olarak gerçek renkli (örneğin, imagecreatetruecolor() ile oluşturulmuş) bir resim kullanın.

Ayrıca Bakınız

imagecopyresized() - Resmin bir parçasını kopyalar ve boyutlandırır