90 ); /** * * @var string */ protected $binary_name = 'GV_imagick'; /** * * @param string $name * @param string $value * @return binaryAdapter_image_resize_imagemagick */ protected function set_option($name, $value) { switch ($name) { case 'angle': $value = (int) $value; break; } parent::set_option($name, $value); return $this; } /** * * @param system_file $origine * @param string $dest * @return system_file */ protected function process(system_file $origine, $dest) { $type = $origine->get_phrasea_type(); if ($type !== 'image') throw new Exception('Cant rotate non image files'); $cmd = $this->binary; $cmd .= ' -rotate ' . $this->options['angle']; $array = array( 'image/tiff', 'application/pdf', 'image/psd', 'image/vnd.adobe.photoshop', 'image/photoshop', 'image/ai', 'image/illustrator', 'image/vnd.adobe.illustrator' ); if (in_array($origine->get_mime(), $array)) { $cmd .= sprintf(' %s %s' , $this->escapeshellargs($origine->getPathname(), '[0]') , $this->escapeshellargs($dest) ); } else { $cmd .= sprintf(' %s %s' , $this->escapeshellargs($origine->getPathname()) , $this->escapeshellargs($dest) ); } $this->shell_cmd($cmd); return $this; } }