(PHP 4, PHP 5, PHP 7, PHP 8)
imagecopyresized — Görüntünün bir parçasını kopyalar ve boyutlandırır
$hedef,$kaynak,$hdf_x,$hdf_y,$kyn_x,$kyn_y,$hdf_gnş,$hdf_yks,$kyn_gnş,$kyn_yks
imagecopyresized() işlevi kaynak
görüntünün bir bölümünü hedef görüntünün bir bölümüne
sığacak şekilde boyutlandırarak kopyalar.
Başka bir deyişle, imagecopyresized() 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ına 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.
hedefGörüntünün gönderileceği özkaynak.
kaynakGörüntünün alındığı özkaynak.
hdf_xHedef görüntüdeki X koordinatı.
hdf_yHedef görüntüdeki Y koordinatı.
kyn_xKaynak görüntüdeki X koordinatı.
kyn_yKaynak görüntüdeki Y koordinatı.
hdf_gnşHedef görüntüdeki parça genişliği.
hdf_yksHedef görüntüdeki parça yüksekliği.
kyn_gnşKaynak genişliği.
kyn_yksKaynak 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 - Bir görüntünün boyutlandırılması
Bu örnekte görüntü yarı boyutunda gösterilmektedir.
<?php
// Dosya ve yeni boyut
$dosya = 'test.jpg';
$oran = 0.5;
// İçerik türü
header('Content-Type: image/jpeg');
// Yeni görüntünün 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ü boyutlandıralım
imagecopyresized($hedef, $kaynak, 0, 0, 0, 0, $yenigen, $yeniyük, $gen, $yük);
// Görüntüyü çıktılayalım
imagejpeg($hedef);
?>Yukarıdaki örnek şuna benzer bir çıktı üretir:
Görüntü yarı boyutunda çıktılanır ama imagecopyresampled() kullanılsaydı kalite daha iyi olurdu.
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ş resimler 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.