DataObjects/Core_person.php
[Pman.Core] / DataObjects / Images.php
index 8d9a7ac..d024fcf 100644 (file)
@@ -830,48 +830,11 @@ class Pman_Core_DataObjects_Images extends DB_DataObject
         
         $data = file_get_contents($file);
         
-//        if(!empty($scaleWidth) || !empty($scaleHeight)){
-//            
-//            $width = $this->width;
-//            $height = $this->height;
-//            
-//            if(!empty($scaleWidth)){
-//                $width = $scaleWidth;
-//
-//                if(empty($scaleHeight)){
-//                    $height = $this->height * $scaleWidth / $this->width;
-//                }
-//            }
-//            
-//            
-//
-//            if(!empty($scaleHeight)){
-//                $height = $scaleHeight;
-//
-//                if(empty($scaleWidth)){
-//                    $width = $this->width * $scaleHeight / $this->height;
-//                }
-//            }
-//            
-//            $im = imagecreatefromstring($data);
-//            
-//            if (($scaled = imagescale($im, $width, $height)) != false) {
-//                ob_start();
-//                imagejpeg($scaled);
-//                $data = ob_get_contents();
-//                ob_end_clean();
-//                imagedestroy($im);
-//                imagedestroy($scaled);
-//            }
-//            
-//        }
-        
-//        if(!empty($scaleWidth) || !empty($scaleHeight)){
-//            $data = $this->scale($scaleWidth, $scaleHeight);
-//        }
+        if(!empty($scaleWidth) || !empty($scaleHeight)){
+            $data = $this->scale(false, $scaleWidth, $scaleHeight);
+        }
         
         if($rotate){
-            $data = $this->rotate();
             $data = $this->rotate($data);
         }
         
@@ -938,8 +901,18 @@ class Pman_Core_DataObjects_Images extends DB_DataObject
         return $imagick->getImageBlob();
     }
     
-    function scale($width, $height)
+    function scale($imageBlob = false, $width = 0, $height = 0)
     {
+        if(empty($imageBlob)){
+            $imagick = new Imagick($this->getStoreName());
+        } else {
+            $imagick = new Imagick();
+            $imagick->readImageBlob($imageBlob);
+        }
+        
+        $imagick->resizeimage($width, $height, Imagick::FILTER_LANCZOS, true, true);
+        
+        return $imagick->getImageBlob();
         
     }