<?php

error_reporting(E_ALL);
ini_set('display_errors', 1);
   
ini_set("memory_limit","800M");

class Union_ImageController extends Zend_Controller_Action
{
	protected $identity;
    public function init()
    {
    	$auth = Zend_Auth::getInstance();
        if (!$auth->hasIdentity())
        {
        	
            $this->_redirect('/');
        }
        $user = $auth->getIdentity();
        $db = new Model_Profile;
        $this->identity = $db->getRow($user->UserID);
        
        $this->view->assign("UserDetails",$this->identity->toArray());
        $this->view->assign("getControllerName",$this->getRequest()->getControllerName());
        $this->view->assign("getActionName",$this->getRequest()->getActionName());
       $this->_helper->viewRenderer->setNoRender();
      	$this->_helper->layout->disableLayout();	
    }
		
		
		
		
public function uploadAction(){
		$request = $this->getRequest();
                
                
		if($request->isPost()){
			
			
			 $IMGBASE64 = str_replace(" ", "+", $request->getParam("file"));
                        
                       
                        
						if(!empty($IMGBASE64)){
						$fileName = uniqid();
						
						$data = $IMGBASE64;
    	 			$pos  = strpos($data, ';');
						$type = explode("/",explode(':', substr($data, 0, $pos))[1])[1];
						$t = $type;
			 			list($type, $data) = explode(';', $data);
						list(, $data)      = explode(',', $data);
						$data = base64_decode($data);

						
						if(file_put_contents(IMG_PATH.'/'.$fileName.'.'.$t, $data)){
							
							$dst_x =0;
							$dst_y =0;
							$src_x = $request->getParam("x");
							$src_y = $request->getParam("y");
							$dst_w = $request->getParam("h");
							$dst_h = $request->getParam("w");
							
							$src_w = $src_x + $dst_w;
							$src_h = $src_y + $dst_h;
							
							$dst_image = imagecreatetruecolor($dst_w, $dst_h);
							if($t=="jpeg" || $t=="jpg"){
								$src_image = imagecreatefromjpeg(IMG_PATH.'/'.$fileName.'.'.$t);
								imagecopyresampled($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h);
								imagejpeg($dst_image,IMG_PATH.'/Crop'.$fileName.'.'.$t);
							}
							
						 $content=file_get_contents(IMG_PATH.'/Crop'.$fileName.'.'.$t,true);
			 			$base64 = base64_encode($content);
						$imageData =  "data:$t;base64,".$base64;
			 				
						$imgDB = new Model_Images;
						$daone = $imgDB->Update(array("Wallpaper"=>$imageData),"UserID ='".$this->identity->UserID."'");
       			if($daone){
       				unlink(IMG_PATH.'/Crop'.$fileName.'.'.$t);
							unlink(IMG_PATH.'/'.$fileName.'.'.$t);
							echo $imageData;
       			}
       			
       			
						}
				}
			
		}
		
		
			
		}
		
		
		function thumbnail_data_uri($filename,$width=0,$height=0) 
			{
			 
			 // Get Image Header Type
			      $image_info = getimagesize($filename);
			      $image_type = $image_info[2];
			
			 // Check the Size is Specified
			 if($width!=0 and $height!=0)
			 {
			      if( $image_type == IMAGETYPE_JPEG ) {
			         $image = imagecreatefromjpeg($filename);
			      } elseif( $image_type == IMAGETYPE_GIF ) {
			         $image = imagecreatefromgif($filename);
			      } elseif( $image_type == IMAGETYPE_PNG ) {
			         $image = imagecreatefrompng($filename);
			   imagealphablending($image, true);
			
			      } 
			
			 $new_image = imagecreatetruecolor($width, $height);
			 imagealphablending($new_image, false);
			 imagesavealpha($new_image, true);     
			      imagecopyresampled($new_image, $image, 0, 0, 0, 0, $width, $height, imagesx($image),imagesy($image));
			      $image = $new_image; 
			   
			 ob_start();
			      if( $image_type == IMAGETYPE_JPEG ) {
			         imagejpeg($image);
			      } elseif( $image_type == IMAGETYPE_GIF ) {
			         imagegif($image);         
			      } elseif( $image_type == IMAGETYPE_PNG ) {
			         imagepng($image);
			      } 
			 $content=ob_get_clean();   
			   
			   
			 }else
			 $content=file_get_contents($filename,true);
			 
			 
			 
			 $base64 = base64_encode($content); 
			 return "data:$image_type;base64,$base64";
			}

    
}