imagecopyresized

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecopyresizedGörüntünün bir parçasını kopyalar ve boyutlandırır

Açıklama

imagecopyresized(
    GdImage$hedef,
    GdImage$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

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.

Bağımsız Değişkenler

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.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: Açıklama
8.0.0hedef ve kaynak artık GdImage nesnesi; evvelce resource türünde bir değer olmalıydı.

Örnekler

Ö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:

Bir görüntünün boyutlandırılması örneğinin çıktısı

Görüntü yarı boyutunda çıktılanır ama imagecopyresampled() kullanılsaydı kalite daha iyi olurdu.

Notlar

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.

Ayrıca Bakınız

  • imagecopyresampled() - Görüntünün bir parçasını örnekleyerek kopyalar ve boyutlandırır
  • imagescale() - Görüntüyü belirtilen genişlik ve yüksekliği kullanarak oranlar
  • imagecrop() - Görüntüyü belirtilen dikdörtgen ile kırpar
To Top