Отзеркалить картинку по горизонтали или вертикали

Отзеркалить картинку по горизонтали или вертикали можно через функцию imageflip().

function image_create($image_path) {

    $ext = pathinfo($image_path, PATHINFO_EXTENSION);
    switch($ext) {
        case 'gif':
            $im = imagecreatefromgif($image_path);
            break;
        case 'jpg':
        case 'jpeg':
            $im = imagecreatefromjpeg($image_path);
            break;
        case 'png':
            $im = imagecreatefrompng($image_path);
            break;
        case 'webp':
            $im = imagecreatefromwebp($image_path);
            break;
        default:
            throw new Exception('Неверный формат файла');
    }

    unset($ext);
    return $im;
}

function image_revert($image_source, $save_as) {

    // Проверка на наличие изображений
    if (!file_exists($image_source)) { throw new Exception('Изображение '.$image_source.' не найдено'); }
    
    $image = image_create($image_source);
    
    // отзеркалить по-горизонтали
    imageflip($image, IMG_FLIP_HORIZONTAL);
    
    // сохранение картинки
    imagejpeg($image, $save_as);
    
    // освобождение памяти
    imagedestroy($image);
}

image_revert('picture.jpg', 'reverted.jpg');

Поддерживаемые константы:

  • IMG_FLIP_HORIZONTAL - отзеркалить по горизонтали
  • IMG_FLIP_VERTICAL - отзеркалить по вертикали
  • IMG_FLIP_BOTH - отзеркалить по горизонтали и вертикали