Version: current

     1 <?php
     2
     3 /**
     4  * Расширение для GD - добавляет функцию наложения изображения с прозрачностью
     5  *
     6  * Используется для наложения водяных знаков
     7  *
     8  * @author inxo, menedem, dvp
     9  *
    10  */
    11 class GDMergeAlpha extends Extension {
    12
    13 /**
    14  * Наложение одного изображения на другое с прозрачностью
    15  *
    16  * @param <type> $mergeGD - GD объект накладываемого изображения
    17  * @param <type> $dstX - положение накладываемого изобржаений (левый край)
    18  * @param <type> $dstY - положение накладываемого изобржаений (верхний край)
    19  *
    20  * @return GD
    21  */
    22     function mergeAlpha($mergeGD, $dstX, $dstY) {
    23         if (!$this->owner->getGD()) return false;
    24
    25         // Get image width and height
    26         $mergeImage = $mergeGD->getGD();
    27         $mergeWidth = $mergeGD->getWidth();
    28         $mergeHeight = $mergeGD->getHeight();
    29
    30         imagealphablending($mergeImage, false);
    31         imagesavealpha($mergeImage, true);
    32
    33         $image = $this->owner->getGD();
    34         imagealphablending($image, true);
    35
    36         imagecopy($image, $mergeImage, $dstX, $dstY, 0, 0, $mergeWidth, $mergeHeight);
    37
    38         $output = clone $this->owner;
    39         $output->setGD($image);
    40         return $output;
    41     }
    42
    43 }
    44

[Raise a SilverStripe Framework issue/bug](https://github.com/silverstripe/silverstripe-framework/issues/new)
- [Raise a SilverStripe CMS issue/bug](https://github.com/silverstripe/silverstripe-cms/issues/new)
- Please use the Silverstripe Forums to ask development related questions. -