Example #1
0
 public function resize($src_file, $target_file, $width, $height, $type, $new_width, $new_height, $x = false, $y = false)
 {
     $rs = NewMagickWand();
     if (MagickReadImage($rs, $src_file)) {
         MagickResizeImage($rs, $new_width, $new_height, MW_QuadraticFilter, 0.3);
         MagickSetImageFormat($rs, 'image/jpeg');
         MagickWriteImage($rs, $target_file);
     }
     return true;
 }
Example #2
0
 protected function _save($writePath)
 {
     try {
         MagickSetImageColorspace($this->_resource, MW_RGBColorspace);
         MagickSetCompression($this->_resource, MW_JPEGCompression);
         MagickSetCompressionQuality($this->_resource, 85);
         MagickSetImageFormat($this->_resource, 'jpeg');
         MagickWriteImage($this->_resource, $writePath);
     } catch (Exception $e) {
         throw new Bbx_Media_Image_Processor_Exception('Couldn\'t write image to ' . $writePath);
     }
 }
Example #3
0
 function image_resize(&$imgmdl, $src_file, $target_file, $new_width, $new_height)
 {
     if (isset($src_file) && is_file($src_file)) {
         list($width, $height, $type) = getimagesize($src_file);
         $size = self::get_image_size($new_width, $new_height, $width, $height);
         $new_width = $size[0];
         $new_height = $size[1];
         if (function_exists('magickresizeimage')) {
             $rs = NewMagickWand();
             if (MagickReadImage($rs, $src_file)) {
                 MagickResizeImage($rs, $new_width, $new_height, MW_QuadraticFilter, 0.3);
                 MagickSetImageFormat($rs, 'image/jpeg');
                 MagickWriteImage($rs, $target_file);
             }
             return true;
         } elseif (function_exists('imagecopyresampled')) {
             $quality = 80;
             $image_p = imagecreatetruecolor($new_width, $new_height);
             imagealphablending($image_p, false);
             switch ($type) {
                 case IMAGETYPE_JPEG:
                     $image = imagecreatefromjpeg($src_file);
                     $func = 'imagejpeg';
                     break;
                 case IMAGETYPE_GIF:
                     $image = imagecreatefromgif($src_file);
                     $func = 'imagegif';
                     break;
                 case IMAGETYPE_PNG:
                     $image = imagecreatefrompng($src_file);
                     imagesavealpha($image, true);
                     $func = 'imagepng';
                     $quality = 8;
                     break;
             }
             imagesavealpha($image_p, true);
             imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
             if ($func) {
                 $func($image_p, $target_file, $quality);
             }
             imagedestroy($image_p);
             imagedestroy($image);
         }
     }
 }
Example #4
0
 /**
  * 转换图片格式
  * @param string $format 要转换到的格式(jpg, jpeg, png等)
  * @return bool 成功返回true,失败返回false
  */
 public function setImageFormat($format)
 {
     return MagickSetImageFormat(self::$resource, $format);
 }
 /**
  * Write the image after being processed
  *
  * @param Asido_Image &$image
  * @return boolean
  * @access protected
  */
 function __write(&$tmp)
 {
     $ret = false;
     if ($tmp->save) {
         // convert, then save
         //
         MagickSetImageFormat($tmp->target, $this->__mime_map[$tmp->save]);
         $t = $this->__tmpfile();
         if (!MagickWriteImage($tmp->target, $t)) {
             return false;
         }
         $ret = @copy($t, $tmp->target_filename);
         @unlink($t);
     } else {
         // no convert, just save
         //
         $ret = MagickWriteImage($tmp->target, $tmp->target_filename);
     }
     // dispose
     //
     @$this->__destroy_source($tmp);
     @$this->__destroy_target($tmp);
     return $ret;
 }
Example #6
0
 function PosterizeNew()
 {
     $MagickWand = NewMagickWand();
     MagickReadImage($MagickWand, "/home/alex/src/imws-server/app/www/turtlz.jpg");
     #$e = MagickGetExceptionString($MagickWand);
     #die($e);
     MagickSetImageFormat($MagickWand, 'png');
     MagickWriteImage($MagickWand, "/tmp/zz");
 }
Example #7
0
 protected function generateMW()
 {
     if (file_exits($this->pathcache . $this->getBaseName())) {
         return true;
     }
     $img = NewMagickWand();
     MagickReadImage($img, $this->pathname . $this->filename);
     $this->info = array('width' => MagickGetImageWidth($img), 'height' => MagickGetImageHeight($img), 'duration' => 0, 'mime' => $this->mime, 'size' => filesize($this->pathname . $this->filename));
     MagickSetImageFormat($img, 'JPEG');
     MagickWriteImage($img, $this->pathcache . $this->getBaseName());
     $this->mime = 'image/jpeg';
     $this->type = array('image', 'jpeg');
     $this->pathname = $this->pathcache;
     $this->filename = $this->getBaseName();
     return true;
 }
Example #8
0
 function createThumb($objWidth, $objHeight, $nmw = "")
 {
     $srcImage = $this->src_image_name;
     if (!IsMagickWand($nmw)) {
         $nmw = NewMagickWand();
         MagickReadImage($nmw, $srcImage);
     }
     $srcImageWidth = MagickGetImageWidth($nmw);
     $srcImageHeight = MagickGetImageHeight($nmw);
     if ($objWidth == 0 || $objHeight == 0) {
         $objWidth = $srcImageWidth;
         $objHeight = $srcImageHeight;
     }
     if ($objWidth < $objHeight) {
         $mu = $srcImageWidth / $objWidth;
         $objHeight = ceil($srcImageHeight / $mu);
     } else {
         $mu = $srcImageHeight / $objHeight;
         $objWidth = ceil($srcImageWidth / $mu);
     }
     MagickScaleImage($nmw, $objWidth, $objHeight);
     $ndw = NewDrawingWand();
     DrawComposite($ndw, MW_AddCompositeOp, 0, 0, $objWidth, $objHeight, $nmw);
     $res = NewMagickWand();
     MagickNewImage($res, $objWidth, $objHeight);
     MagickDrawImage($res, $ndw);
     MagickSetImageFormat($res, MagickGetImageFormat($nmw));
     return $res;
 }
Example #9
0
 /**
  * 生成指定宽度和高度的图片
  * @param object image model object
  * @param string source file directory
  * @param mixed 临时数据源
  * @param string 宽度
  * @param string 高度
  * @return null 
  */
 function image_resize(&$imgmdl, $src_file, $target_file, $new_width, $new_height)
 {
     if (isset($src_file) && is_file($src_file)) {
         list($width, $height, $type) = getimagesize($src_file);
         $size = self::get_image_size($new_width, $new_height, $width, $height);
         $new_width = $size[0];
         $new_height = $size[1];
         if (ECAE_MODE) {
             include_lib('image.php');
             $obj = new ecae_image();
             $obj->set_file($src_file);
             $obj->resize($new_width, $new_height);
             $obj->strip();
             $content = $obj->exec();
             if ($content) {
                 file_put_contents($target_file, $content);
                 return true;
             } else {
                 return false;
             }
         } elseif (function_exists('magickresizeimage')) {
             $rs = NewMagickWand();
             if (MagickReadImage($rs, $src_file)) {
                 MagickResizeImage($rs, $new_width, $new_height, MW_QuadraticFilter, 0.3);
                 MagickSetImageFormat($rs, 'image/jpeg');
                 MagickWriteImage($rs, $target_file);
             }
             return true;
         } elseif (function_exists('imagecopyresampled')) {
             $quality = 80;
             $image_p = imagecreatetruecolor($new_width, $new_height);
             if ($new_width > $width && $new_height > $height) {
                 $background_color = imagecolorallocate($image_p, 255, 255, 255);
                 imagefilledrectangle($image_p, 0, 0, $new_width, $new_height, $background_color);
             }
             imagealphablending($image_p, false);
             switch ($type) {
                 case IMAGETYPE_JPEG:
                     $image = imagecreatefromjpeg($src_file);
                     $func = 'imagejpeg';
                     break;
                 case IMAGETYPE_GIF:
                     $image = imagecreatefromgif($src_file);
                     $func = 'imagegif';
                     break;
                 case IMAGETYPE_PNG:
                     $image = imagecreatefrompng($src_file);
                     imagesavealpha($image, true);
                     $func = 'imagepng';
                     $quality = 8;
                     break;
             }
             imagesavealpha($image_p, true);
             if ($new_width > $width && $new_height > $height) {
                 imagecopyresampled($image_p, $image, ($new_width - $width) / 2, ($new_height - $height) / 2, 0, 0, $width, $height, $width, $height);
             } else {
                 imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
             }
             if ($func) {
                 $func($image_p, $target_file, $quality);
             }
             imagedestroy($image_p);
             imagedestroy($image);
         }
     }
 }
Example #10
0
 /**
  * @return Imagens
  * @param string $digital
  * @param string $md5
  * @param boolean $high
  * @param int $active
  * @param int $total
  */
 public function createCacheJpegView($digital, $md5, $high = false)
 {
     $iImageHeightPixel = $high === false ? 960 : 2480;
     $iImageWidthPixel = $high === false ? 1280 : 3508;
     $lote = $this->generateLote($digital);
     $dirCache = sprintf('%s/cache/%s', __CAM_UPLOAD__, $lote);
     $tiff = sprintf('%s/%s/%s/%s.tif', __CAM_UPLOAD__, $lote, $digital, $md5);
     $view = sprintf('%s/%s/%s_view_%d.jpg', $dirCache, $digital, $md5, $high === false ? self::Q_LOW : self::Q_HIGH);
     $thumbs = sprintf('%s/%s/%s_thumb.jpg', $dirCache, $digital, $md5);
     if (!is_file($tiff)) {
         throw new Exception('Arquivo TIFF original não encontrado!');
     }
     if (is_file($view)) {
         return $this;
     }
     // thumbs
     if (!is_file($thumbs)) {
         MagickReadImage($magickThumbs = NewMagickWand(), $tiff);
         if (MagickGetImageWidth($magickThumbs) < MagickGetImageHeight($magickThumbs)) {
             MagickResizeImage($magickThumbs, 150, 200, MW_QuadraticFilter, 1.0);
         } else {
             MagickResizeImage($magickThumbs, 200, 150, MW_QuadraticFilter, 1.0);
         }
         MagickSetImageFormat($magickThumbs, 'JPG');
         MagickSetImageResolution($magickThumbs, 200, 200);
         MagickSetImageUnits($magickThumbs, MW_PixelsPerInchResolution);
         MagickSetImageCompression($magickThumbs, MW_JPEGCompression);
         MagickSetImageCompressionQuality($magickThumbs, 0.0);
         MagickWriteImage($magickThumbs, $thumbs);
     }
     // views
     MagickReadImage($magickView = NewMagickWand(), $tiff);
     if (MagickGetImageWidth($magickView) > MagickGetImageHeight($magickView)) {
         MagickResizeImage($magickView, $iImageWidthPixel, $iImageHeightPixel, MW_QuadraticFilter, 1.0);
     } else {
         MagickResizeImage($magickView, $iImageHeightPixel, $iImageWidthPixel, MW_QuadraticFilter, 1.0);
     }
     MagickSetImageFormat($magickView, 'JPG');
     MagickSetImageResolution($magickView, 200, 200);
     MagickSetImageUnits($magickView, MW_PixelsPerInchResolution);
     MagickSetImageCompression($magickView, MW_JPEGCompression);
     MagickSetImageCompressionQuality($magickView, 0.0);
     MagickWriteImage($magickView, $view);
     $errorMagick = MagickGetExceptionString($magickView);
     if ($errorMagick) {
         throw new Exception($errorMagick);
     }
     return $this;
 }