Exemple #1
0
 public function testInitFromSetBinary()
 {
     $settings = ezcImageImagemagickHandler::defaultSettings();
     $settings->options['binary'] = ezcBaseFeatures::getImageConvertExecutable();
     $handler = new ezcImageImagemagickHandler($settings);
     $filePath = $this->testFiles["jpeg"];
     $ref = $handler->load($filePath);
     $handler->close($ref);
 }
 public function testGetImageConvertExecutable()
 {
     $this->assertEquals('/usr/bin/convert', ezcBaseFeatures::getImageConvertExecutable());
 }
 public function testGetImageConvertExecutable()
 {
     $this->assertNotNull(ezcBaseFeatures::getImageConvertExecutable());
 }
 /**
  * Checks for ImageMagick on the system.
  *
  * @param ezcImageHandlerSettings $settings The settings object of the current handler instance.
  * @return void
  *
  * @throws ezcImageHandlerNotAvailableException
  *         If the ImageMagick binary is not found.
  */
 private function checkImageMagick(ezcImageHandlerSettings $settings)
 {
     if (!isset($settings->options['binary'])) {
         $this->binary = ezcBaseFeatures::getImageConvertExecutable();
     } else {
         if (file_exists($settings->options['binary'])) {
             $this->binary = $this->settings['binary'];
         }
     }
     if ($this->binary === null) {
         throw new ezcImageHandlerNotAvailableException('ezcImageImagemagickHandler', 'ImageMagick not installed or not available in PATH variable.');
     }
     // Prepare to run ImageMagick command
     $descriptors = array(array('pipe', 'r'), array('pipe', 'w'), array('pipe', 'w'));
     // Open ImageMagick process
     $imageProcess = proc_open($this->binary, $descriptors, $pipes);
     // Close STDIN pipe
     fclose($pipes[0]);
     $outputString = '';
     // Read STDOUT
     do {
         $outputString .= rtrim(fgets($pipes[1], 1024), "\n");
     } while (!feof($pipes[1]));
     $errorString = '';
     // Read STDERR
     do {
         $errorString .= rtrim(fgets($pipes[2], 1024), "\n");
     } while (!feof($pipes[2]));
     // Wait for process to terminate and store return value
     $return = proc_close($imageProcess);
     // Process potential errors
     if (strlen($errorString) > 0 || strpos($outputString, 'ImageMagick') === false) {
         throw new ezcImageHandlerNotAvailableException('ezcImageImagemagickHandler', 'ImageMagick not installed or not available in PATH variable.');
     }
 }