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));
}
}
}