예제 #1
0
 /**
  * @param array $options
  *
  * @return bool|null
  */
 public function makeThumbnail($options = array())
 {
     $phpThumb = new modPhpThumb($this->xpdo);
     $phpThumb->initialize();
     $tf = tempnam(MODX_BASE_PATH, 'ms_');
     file_put_contents($tf, $this->file['content']);
     $phpThumb->setSourceFilename($tf);
     foreach ($options as $k => $v) {
         $phpThumb->setParameter($k, $v);
     }
     if ($phpThumb->GenerateThumbnail()) {
         ImageInterlace($phpThumb->gdimg_output, true);
         if ($phpThumb->RenderOutput()) {
             @unlink($phpThumb->sourceFilename);
             @unlink($tf);
             return $phpThumb->outputImageData;
         }
     } else {
         $this->xpdo->log(modX::LOG_LEVEL_ERROR, 'Could not generate thumbnail for "' . $this->get('url') . '". ' . print_r($phpThumb->debugmessages, 1));
     }
     return false;
 }
 /**
  * @param array $options
  * @param array $info
  *
  * @return bool|null
  */
 public function makeThumbnail($options = array(), array $info)
 {
     if (!class_exists('modPhpThumb')) {
         /** @noinspection PhpIncludeInspection */
         require MODX_CORE_PATH . 'model/phpthumb/modphpthumb.class.php';
     }
     /** @noinspection PhpParamsInspection */
     $phpThumb = new modPhpThumb($this->xpdo);
     $phpThumb->initialize();
     $tf = tempnam(MODX_BASE_PATH, 'ms2g_');
     file_put_contents($tf, $info['content']);
     $phpThumb->setSourceFilename($tf);
     foreach ($options as $k => $v) {
         $phpThumb->setParameter($k, $v);
     }
     if ($phpThumb->GenerateThumbnail()) {
         ImageInterlace($phpThumb->gdimg_output, true);
         if ($phpThumb->RenderOutput()) {
             @unlink($phpThumb->sourceFilename);
             @unlink($tf);
             $this->xpdo->log(modX::LOG_LEVEL_INFO, '[ms2Gallery] phpThumb messages for "' . $this->get('url') . '". ' . print_r($phpThumb->debugmessages, 1));
             return $phpThumb->outputImageData;
         }
     }
     @unlink($phpThumb->sourceFilename);
     @unlink($tf);
     $this->xpdo->log(modX::LOG_LEVEL_ERROR, '[ms2Gallery] Could not generate thumbnail for "' . $this->get('url') . '". ' . print_r($phpThumb->debugmessages, 1));
     return false;
 }
예제 #3
0
 /**
  * @param array $options
  * @param null $raw
  *
  * @return bool|null
  */
 protected function _phpThumb(array $options = array(), $raw = null)
 {
     if ($this->get('type') != 'image') {
         return false;
     } elseif (!class_exists('modPhpThumb')) {
         /** @noinspection PhpIncludeInspection */
         require MODX_CORE_PATH . 'model/phpthumb/modphpthumb.class.php';
     }
     if (empty($raw)) {
         $prepare = $this->prepareSource();
         if ($prepare !== true) {
             return $prepare;
         }
         $filename = $this->get('path') . $this->get('file');
         $info = $this->mediaSource->getObjectContents($filename);
         if (!is_array($info)) {
             return "Could not retrieve contents of file {$filename} from media source.";
         } elseif (!empty($this->mediaSource->errors['file'])) {
             return "Could not retrieve file {$filename} from media source: " . $this->mediaSource->errors['file'];
         }
         $raw = $info['content'];
     }
     $phpThumb = new modPhpThumb($this->xpdo);
     $phpThumb->initialize();
     $tmp = tempnam(MODX_BASE_PATH, 'uf_');
     file_put_contents($tmp, $raw);
     $phpThumb->setSourceFilename($tmp);
     foreach ($options as $k => $v) {
         $phpThumb->setParameter($k, $v);
     }
     if ($phpThumb->GenerateThumbnail()) {
         ImageInterlace($phpThumb->gdimg_output, true);
         if ($phpThumb->RenderOutput()) {
             @unlink($phpThumb->sourceFilename);
             @unlink($tmp);
             $this->xpdo->log(modX::LOG_LEVEL_INFO, '[Uploadify] phpThumb messages for "' . $this->get('url') . '". ' . print_r($phpThumb->debugmessages, 1));
             return $phpThumb->outputImageData;
         }
     }
     @unlink($phpThumb->sourceFilename);
     @unlink($tmp);
     $this->xpdo->log(modX::LOG_LEVEL_ERROR, '[Uploadify] Could not resize "' . $this->get('url') . '". ' . print_r($phpThumb->debugmessages, 1));
     return false;
 }