Ejemplo n.º 1
0
 public function test($filepath, $original_filename = "")
 {
     switch ($this->backend) {
         case LIBRARY_GD:
             $va_info = getimagesize($filepath);
             if ($va_info[2] > 0) {
                 return image_type_to_mime_type($va_info[2]);
             }
             break;
         default:
             // Try to detect PDF file by header; if we pass a PDF to MagickPingImage()
             // it can crash Apache (on some Linux boxes, at least)
             if ($r_fp = fopen($filepath, "r")) {
                 $vs_header = fread($r_fp, 4);
                 if ($vs_header == "%PDF") {
                     return false;
                 }
                 fclose($r_fp);
             } else {
                 return false;
             }
             $r_handle = NewMagickWand();
             if (MagickPingImage($r_handle, $filepath)) {
                 if ($mimetype = MagickGetImageMimeType($r_handle)) {
                     return $mimetype;
                 }
             }
             break;
     }
     return false;
 }
Ejemplo n.º 2
0
 function resizeMobile2($src_path, $dest_path, $d_width, $d_height)
 {
     $mk = NewMagickWand();
     if (!MagickPingImage($mk, $src_path)) {
         echo "magick wand - no image \n";
         $format = sprintf("convert %s -resize %dx%d -colors 256 -quality 90 -depth 8 %s", $src_path, $destWidth, $destHeight, $dest_path);
         $buffer = "";
         exec($format, $buffer);
         return false;
     }
     // Now we need to clear out the data that MagickPingImage() put there
     ClearMagickWand($mk);
     if (MagickReadImage($mk, $src_path)) {
         list($srcWidth, $srcHeight, $destWidth, $destHeight) = getRate($src_path, $d_width, $d_height);
         //소스 이미지를 읽어서
         $mk = MagickTransformImage($mk, NULL, $destWidth . "x" . $destHeight);
         MagickSetImageCompressionQuality($mk, 90);
         MagickSetImageDepth($mk, 8);
         //MagickSetImageIndex($mk, 256);
         MagickProfileImage($mk, "*", "");
         MagickQuantizeImage($mk, 256, MW_RGBColorspace, 0, true, false);
         //$chk = MagickResizeImage($mk, $destWidth, $destHeight);
         //echo "$src_path , $dest_path, $destWidth, $destHeight \n";
         // 이미지를 리사이징해라. 가로 $w 세로 $h
         //MagickResizeImage() 이라는 함수도 있는데 위의 것이 더 범용적입니다.
         if ($mk == null) {
             //echo "this is convert";
             $format = sprintf("convert %s -resize %dx%d -colors 256 -quality 90 -depth 8 %s", $src_path, $destWidth, $destHeight, $dest_path);
             $buffer = "";
             exec($format, $buffer);
             //echo "object is null \n";
             return true;
         }
         MagickWriteImage($mk, $dest_path);
         // 새로운 이미지를 만들어라~
         ClearMagickWand($mk);
     } else {
         echo "magick wand - read fail \n";
         return false;
     }
     return true;
 }