Grafika\Gd\Editor::_flip PHP Method

_flip() private method

Flips image.
private _flip ( Image $image, $mode ) : Image
$image Image
$mode
return Image
    private function _flip($image, $mode)
    {
        $old = $image->getCore();
        $w = $image->getWidth();
        $h = $image->getHeight();
        if ($mode === 'h') {
            $new = imagecreatetruecolor($w, $h);
            for ($x = 0; $x < $w; $x++) {
                imagecopy($new, $old, $w - $x - 1, 0, $x, 0, 1, $h);
            }
            imagedestroy($old);
            // Free resource
            return new Image($new, $image->getImageFile(), $w, $h, $image->getType(), $image->getBlocks(), $image->isAnimated());
        } else {
            if ($mode === 'v') {
                $new = imagecreatetruecolor($w, $h);
                for ($y = 0; $y < $h; $y++) {
                    imagecopy($new, $old, 0, $h - $y - 1, 0, $y, $w, 1);
                }
                imagedestroy($old);
                // Free resource
                return new Image($new, $image->getImageFile(), $w, $h, $image->getType(), $image->getBlocks(), $image->isAnimated());
            } else {
                throw new \Exception(sprintf('Unsupported mode "%s"', $mode));
            }
        }
    }