Ver Mensaje Individual
  #5 (permalink)  
Antiguo 01/10/2007, 13:29
vicman
 
Fecha de Ingreso: enero-2004
Ubicación: Medellin
Mensajes: 178
Antigüedad: 21 años, 2 meses
Puntos: 8
Re: unir 2 imagenes

les cuento, que es muy sencillo, pongo el codigo tal cual como lo tengo en la clase.
Nota: Etoy usando codeigniter como framework.

Código PHP:

class Banners extends Controller {

    function 
Banners ()
    {
        
#setea las variables iniciales
        
parent::Controller();
        
$this->load->helper('form');
        
$this->load->library('validation');
               
     }
     
     
    function 
index()
    {
        
        if (
false == $this->site_sentry->is_logged_in()) #si no esta logueado lo devuelve al login
        
{
           
redirect('login/logout''location');
            exit;
        }
    }
    
    function 
crear()
    {
         if (
false == $this->site_sentry->is_logged_in()) #si no esta logueado lo devuelve al login
         
{
             
redirect('login/logout''location');
             exit;
         }
         
         
$accion$this->input->post('pageaction');
        
         
#guarda un nuevo archivo
         
if('add' === $accion)
         { 
              
//echo "sube el archivo"; 
              
$archivo $_FILES["userfile"]["tmp_name"]; 
              if (
trim($archivo) != "")
              {
                 
$filePath 'uploads/images/banner/';
                 
#carga los parametros para subir el archivo          
                 
$config['upload_path'] = $filePath;
                 
$config['allowed_types'] = 'gif|jpg|png';
                 
$field_name "userfile";              
                 
$this->load->library('upload'$config);
                 
                     if ( ! 
$this->upload->do_upload())
                     {
                           
$error = array('error' => $this->upload->display_errors());    
                           
pprint_r($error);        
                           
//$this->load->view('upload_form', $error);
                     
}    
                     else
                    {
                          
#el archivo se subio correctamente
                          
$dataupload = array('upload_data' => $this->upload->data());
                          
$archivo_nombre $dataupload['upload_data']['file_name'];
                          
$archivo_tipo   $dataupload['upload_data']['file_type'];
                          
$ext    $dataupload['upload_data']['image_type'];    
                          
pprint_r($dataupload);    
                          
                          
#Redimensiono la imagen                          
                          
$config['source_image'] = $filePath $archivo_nombre;
                          
$config['create_thumb'] = FALSE;
                          
$config['maintain_ratio'] = TRUE;
                          
$config['width'] = 80;
                          
$config['height'] = 80;    
                          
$config['quality'] = 100;                        
                          
$this->load->library('image_lib'$config);
                          
$this->image_lib->resize();
                          
                          
                          
$img1 $filePath "marco.jpg"// imagen de fondo
                          
$img2 $filePath $archivo_nombre//imagen subida
                          // Creamos las dos imágenes a utilizar
                          
$imagen1 imagecreatefromjpeg($img1);
                          if (
$ext == 'jpg' || $ext == 'jpeg')
                          {
                              
$imagen2 imagecreatefromjpeg($img2);
                          }
                          else if (
$ext == 'png')
                          {
                              
$imagen2 imagecreatefrompng($img2);
                          }
                          else if (
$ext == 'gif')
                          {
                              
$imagen2 imagecreatefromgif($img2);
                          }
                          if(
$imagen2)
                          {
                          
                              
$x intval(imagesx($imagen1)-imagesx($imagen2))/2;
                              
$y intval(imagesy($imagen1)-imagesy($imagen2))/2;
                              
imagecopy($imagen1,$imagen2,$x,$y,0,0,80,80);//imagecopy($img1,$img2,x1,y1,x2,y2,ancho,alto);
                              #guarda la nueva imagen
                              
if ($ext == 'jpg' || $ext == 'jpeg')
                              {
                                  
imagejpeg($imagen1$filePath .$archivo_nombre);
                              }
                              else if (
$ext == 'png')
                              {
                                
imagePng($imagen1$filePath .$archivo_nombre);
                              }
                               else if (
$ext == 'gif')
                              {
                                
ImageGif($imagen1$filePath .$archivo_nombre);
                              }
                              else
                              {
                                
imagejpeg($img,$save_path,85);
                              }
                            
                              
// Destruimos ambas imágenes
                              
imagedestroy($imagen2);
                              
imagedestroy($imagen1);
                               
#aqui guarda en base de datos                  
                             
                              
                         
}
                         else
                         {
                            echo 
"No fue posible aplicarle el fondo a la imagen";                            
                            
#que elimine la imagen que subio
                         
                         
}
                           
        
                         
#todo exitoso, redirecciona a la pagina principal
                     
}
             }
             else
             {
                echo 
"debe seleccionar un archivo de imagen";
             
             }
              
         }
         else
         {
            
$data['edv_titulo'] = 'Banners ->Crear banner';
         
            
$data2['prueba'] = "";
            
$data['edv_body'] =  ($this->load->view('banners/crear',$data2,true));
            
$this->load->view('home/plantilla_admin'$data);
         }
    
    
    
    }