Esempio n. 1
0
 public function checkStatus()
 {
     $va_status = parent::checkStatus();
     if ($this->register()) {
         $va_status['available'] = true;
     } else {
         if (caMediaPluginCoreImageInstalled($this->ops_CoreImage_path)) {
             $va_status['unused'] = true;
             $va_status['warnings'][] = _t("Didn't load because CoreImageTool is available and preferred");
         }
         if (caMediaPluginImagickInstalled()) {
             $va_status['unused'] = true;
             $va_status['warnings'][] = _t("Didn't load because Imagick/ImageMagick is available and preferred");
         }
         if (caMediaPluginImageMagickInstalled($this->ops_imagemagick_path)) {
             $va_status['unused'] = true;
             $va_status['warnings'][] = _t("Didn't load because ImageMagick (command-line) is available and preferred");
         }
         if (caMediaPluginGmagickInstalled()) {
             $va_status['unused'] = true;
             $va_status['warnings'][] = _t("Didn't load because Gmagick is available and preferred");
         }
         if (caMediaPluginGraphicsMagickInstalled($this->ops_graphicsmagick_path)) {
             $va_status['unused'] = true;
             $va_status['warnings'][] = _t("Didn't load because GraphicsMagick is available and preferred");
         }
         if (!caMediaPluginGDInstalled()) {
             $va_status['errors'][] = _t("Didn't load because your PHP install lacks GD support");
         }
     }
     return $va_status;
 }
Esempio n. 2
0
 private function _CoreImageRead($ps_filepath)
 {
     if (caMediaPluginCoreImageInstalled($this->ops_CoreImage_path)) {
         $vs_output = shell_exec('sips --getProperty format --getProperty space --getProperty bitsPerSample --getProperty pixelWidth --getProperty pixelHeight --getProperty dpiWidth --getProperty dpiHeight "' . $ps_filepath . "\" 2> /dev/null");
         $va_tmp = explode("\n", $vs_output);
         array_shift($va_tmp);
         $va_properties = array();
         foreach ($va_tmp as $vs_line) {
             $va_line_tmp = explode(':', $vs_line);
             $va_properties[trim($va_line_tmp[0])] = trim($va_line_tmp[1]);
         }
         return array('mimetype' => $this->appleTypeToMimeType($va_properties['format']), 'magick' => $va_properties['format'], 'width' => $va_properties['pixelWidth'], 'height' => $va_properties['pixelHeight'], 'ops' => array(), 'filepath' => $ps_filepath);
     }
     return null;
 }
Esempio n. 3
0
 public function checkStatus()
 {
     $va_status = parent::checkStatus();
     if ($this->register()) {
         $va_status['available'] = true;
     } else {
         if (caMediaPluginCoreImageInstalled($this->ops_CoreImage_path)) {
             $va_status['unused'] = true;
             $va_status['warnings'][] = _t("Didn't load because CoreImageTool is available and preferred");
         }
         if (caMediaPluginGmagickInstalled()) {
             $va_status['unused'] = true;
             $va_status['warnings'][] = _t("Didn't load because Gmagick is available and preferred");
         }
         if (!caMediaPluginImagickInstalled()) {
             $va_status['errors'][] = _t("Didn't load because Imagick is not available");
         }
     }
     if (!caMediaPluginDcrawInstalled($this->ops_dcraw_path)) {
         $va_status['warnings'][] = _t("RAW image support is not enabled because DCRAW cannot be found");
     }
     return $va_status;
 }
Esempio n. 4
0
 private function _CoreImageWrite($pa_handle, $ps_filepath, $ps_mimetype, $pn_quality = null)
 {
     if (caMediaPluginCoreImageInstalled($this->ops_CoreImage_path)) {
         $va_ops = array();
         foreach ($pa_handle['ops'] as $va_op) {
             switch ($va_op['op']) {
                 case 'annotation':
                     // TODO: annotation is not currrently supported in this plugin
                     //$vs_op = '-gravity '.$va_op['position'].' -fill '.str_replace('#', '\\#', $va_op['color']).' -pointsize '.$va_op['size'].' -draw "text '.$va_op['inset'].','.$va_op['inset'].' \''.$va_op['text'].'\'"';
                     //if ($va_op['font']) {
                     //	$vs_op .= ' -font '.$va_op['font'];
                     //}
                     //$va_ops['convert'][] = $vs_op;
                     break;
                 case 'watermark':
                     // TODO: watermark position is not currently handled in this plugin
                     if (is_array($va_ops) && sizeof($va_ops)) {
                         array_unshift($va_ops, "load watermark " . caEscapeShellArg($va_op['watermark_image']));
                     }
                     $va_ops[] = "filter watermark CIStretchCrop size=" . $va_op['watermark_width'] . "," . $va_op['watermark_height'] . ":cropAmount=0:centerStretchAmount=0";
                     $va_ops[] = "filter watermark CIColorMatrix RVector=1,0,0,0:GVector=0,1,0,0:BVector=0,0,1,0:AVector=0,0,0," . $va_op['opacity'] . ":BiasVector=0,0,0,0";
                     $va_ops[] = "filter image CISoftLightBlendMode backgroundImage=watermark";
                     break;
                 case 'size':
                     if ($va_op['width'] < 1) {
                         break;
                     }
                     if ($va_op['height'] < 1) {
                         break;
                     }
                     $vn_scale = $va_op['width'] / $this->handle['width'];
                     $va_ops[] = "filter image CILanczosScaleTransform scale={$vn_scale}:aspectRatio=1";
                     break;
                 case 'crop':
                     if ($va_op['width'] < 1) {
                         break;
                     }
                     if ($va_op['height'] < 1) {
                         break;
                     }
                     if ($va_op['x'] < 0) {
                         break;
                     }
                     if ($va_op['y'] < 0) {
                         break;
                     }
                     $va_ops[] = "filter image CICrop rectangle=" . join(",", array($va_op['x'], $va_op['y'], $va_op['width'], $va_op['height']));
                     break;
                 case 'rotate':
                     if (!is_numeric($va_op['angle'])) {
                         break;
                     }
                     $va_ops[] = "filter image CIAffineTransform transform=" . cos($va_op['angle']) . "," . -1 * sin($va_op['angle']) . ",0," . sin($va_op['angle']) . "," . cos($va_op['angle']) . ",0";
                     break;
                 case 'filter_despeckle':
                     // TODO: see if this works nicely... just using default values
                     $va_ops[] = "filter image CINoiseReduction inputNoiseLevel=0.2:inputSharpness=0.4";
                     break;
                 case 'filter_median':
                     if ($va_op['radius'] < 0) {
                         break;
                     }
                     // NOTE: CoreImage Median doesn't take a radius, unlike ImageMagick's
                     $va_ops[] = "filter image CIMedianFilter ";
                     break;
                 case 'filter_unsharp_mask':
                 case 'filter_sharpen':
                     if ($va_op['radius'] < 0) {
                         break;
                     }
                     $vn_radius = $va_op['radius'];
                     if (!($vn_intensity = $va_op['amount'])) {
                         $vn_intensity = 1;
                     }
                     $va_ops[] = "filter image CIUnsharpMask radius={$vn_radius}:intensity={$vn_intensity}";
                     break;
             }
         }
         if (isset($this->properties["orientation_rotate"]) && $this->properties["orientation_rotate"] != 0) {
             $va_ops[] = "filter image CIAffineTransform transform=" . cos($va_op['angle']) . "," . -1 * sin($this->properties["orientation_rotate"]) . ",0," . sin($this->properties["orientation_rotate"]) . "," . cos($this->properties["orientation_rotate"]) . ",0";
         }
         $vs_input_file = $pa_handle['filepath'];
         if (is_array($va_ops) && sizeof($va_ops)) {
             array_unshift($va_ops, "load image " . caEscapeShellArg($vs_input_file));
             array_push($va_ops, "store image " . caEscapeShellArg($ps_filepath) . " " . $this->apple_UTIs[$ps_mimetype]);
             //print "<hr>".join(" ", $va_ops)."<hr>";
             exec($this->ops_CoreImage_path . " " . join(" ", $va_ops));
             $vs_input_file = $ps_filepath;
         }
         return true;
     }
     return null;
 }
 public function checkStatus()
 {
     $va_status = parent::checkStatus();
     if ($this->register()) {
         $va_status['available'] = true;
     } else {
         if (caMediaPluginCoreImageInstalled($this->ops_CoreImage_path)) {
             $va_status['unused'] = true;
             $va_status['warnings'][] = _t("Didn't load because CoreImageTool is available and preferred");
         }
         if (caMediaPluginImagickInstalled()) {
             $va_status['unused'] = true;
             $va_status['warnings'][] = _t("Didn't load because Imagick is available and preferred");
         }
         if (caMediaPluginGmagickInstalled()) {
             $va_status['unused'] = true;
             $va_status['warnings'][] = _t("Didn't load because Gmagick is available and preferred");
         }
         if (!caMediaPluginGraphicsMagickInstalled($this->ops_graphicsmagick_path)) {
             $va_status['errors'][] = _t("Didn't load because GraphicsMagick executables cannot be found");
         }
     }
     return $va_status;
 }