39 lines
911 B
PHP
39 lines
911 B
PHP
<?php
|
|
|
|
namespace Intervention\Image\Gd\Commands;
|
|
|
|
use Intervention\Image\Commands\AbstractCommand;
|
|
use Intervention\Image\Exception\RuntimeException;
|
|
|
|
class ResetCommand extends AbstractCommand
|
|
{
|
|
/**
|
|
* Resets given image to its backup state
|
|
*
|
|
* @param \Intervention\Image\Image $image
|
|
* @return boolean
|
|
*/
|
|
public function execute($image)
|
|
{
|
|
$backupName = $this->argument(0)->value();
|
|
|
|
if (is_resource($backup = $image->getBackup($backupName))) {
|
|
|
|
// destroy current resource
|
|
imagedestroy($image->getCore());
|
|
|
|
// clone backup
|
|
$backup = $image->getDriver()->cloneCore($backup);
|
|
|
|
// reset to new resource
|
|
$image->setCore($backup);
|
|
|
|
return true;
|
|
}
|
|
|
|
throw new RuntimeException(
|
|
"Backup not available. Call backup() before reset()."
|
|
);
|
|
}
|
|
}
|