JBZoo\Image\Image::overlay PHP Method

overlay() public method

Overlay an image on top of another, works with 24-bit PNG alpha-transparency
public overlay ( string | Image $overlay, string $position = 'bottom right', float | integer $opacity = 0.4, integer $globOffsetX, integer $globOffsetY )
$overlay string | Image An image filename or a Image object
$position string center|top|left|bottom|right|top left|top right|bottom left|bottom right
$opacity float | integer Overlay opacity 0-1 or 0-100
$globOffsetX integer Horizontal offset in pixels
$globOffsetY integer Vertical offset in pixels
    public function overlay($overlay, $position = 'bottom right', $opacity = 0.4, $globOffsetX = 0, $globOffsetY = 0)
    {
        // Load overlay image
        if (!$overlay instanceof self) {
            $overlay = new self($overlay);
        }
        // Convert opacity
        $opacity = Helper::opacity($opacity);
        $globOffsetX = VarFilter::int($globOffsetX);
        $globOffsetY = VarFilter::int($globOffsetY);
        // Determine position
        list($xOffset, $yOffset) = Helper::getInnerCoords($position, array($this->_width, $this->_height), array($overlay->getWidth(), $overlay->getHeight()), array($globOffsetX, $globOffsetY));
        // Perform the overlay
        Helper::imageCopyMergeAlpha($this->_image, $overlay->getImage(), array($xOffset, $yOffset), array(0, 0), array($overlay->getWidth(), $overlay->getHeight()), $opacity);
        return $this;
    }

Usage Example

Ejemplo n.º 1
0
 public function testIssue7()
 {
     $excepted = Helper::getExpected(__FUNCTION__ . '.png');
     $actual = Helper::getActual(__FUNCTION__ . '.png');
     $base = Helper::getOrig('issue-7/back.png');
     $overlay = Helper::getOrig('issue-7/overlay.png');
     $image = new Image($base);
     $image->overlay($overlay)->saveAs($actual);
     Helper::isFileEq($actual, $excepted);
 }