Nasıl (GD kullanarak) PHP zaten resampled görüntü üzerinde filigran kaplamasını sağlayabilirsiniz?

1 Cevap php

İşte benim geçerli kod:

define('IMG_WIDTH',  (isset ($_GET['width']))  ? (int) $_GET['width']  : 99);
define('IMG_HEIGHT', (isset ($_GET['height'])) ? (int) $_GET['height'] : 75);

$image      = imagecreatefromjpeg($_GET['image']);
$origWidth  = imagesx($image);
$origHeight = imagesy($image);

$croppedThumb = imagecreatetruecolor(IMG_WIDTH, IMG_HEIGHT);

if ($origWidth > $origHeight)
{
   $leftOffset = ($origWidth - $origHeight) / 2;
   imagecopyresampled($croppedThumb, $image, 0, 0, $leftOffset, 0, IMG_WIDTH, IMG_HEIGHT, $origHeight, $origHeight);
}
else
{
   $topOffset  = ($origHeight - $origWidth) / 2;
   imagecopyresampled($croppedThumb, $image, 0, 0, 0, $topOffset, IMG_WIDTH, IMG_HEIGHT, $origWidth, $origWidth);
}

Bu temelde bir görüntü alır ve bir küçük resim oluşturmak için yeniden boyutlandırır. Oldukça güzel çalışıyor. Ne şimdi yapmak istiyorum sağ alt köşesine filigran ekleyin. Bana kaynağı olarak yeniden örneklenen bir görüntü sağlamak için izin görünmüyor ... Ancak bunun için kullanılan imagecopymerge fonksiyonu, gördüm.

Nasıl benim zaten değiştirilmiş görüntü almak ve bir filigran ekleyebilirsiniz? :/

I / tmp dizinine görüntü kaydetme düşündüm ve sonra (bağlantısını) 'Ben filigranı ekledim kez ing ama bir karmaşa bir bit gibi görünüyor ettik ...

1 Cevap

Sen ilk argüman olarak $croppedThumb kullanabilirsiniz imagecopymerge. Önce görüntü kaydetmek zorunda değilsiniz.