Foros del Web » Programando para Internet » PHP » CodeIgniter »

Problema con image_lib al redimensionar y crear miniatura

Estas en el tema de Problema con image_lib al redimensionar y crear miniatura en el foro de CodeIgniter en Foros del Web. Buenas, estoy desarrollando módulo de subida de imágenes al servidor en el que una vez subida la imagen primero la redimensiono y luego creo una ...
  #1 (permalink)  
Antiguo 17/11/2011, 06:40
 
Fecha de Ingreso: octubre-2008
Ubicación: Plasencia
Mensajes: 109
Antigüedad: 16 años, 1 mes
Puntos: 6
Problema con image_lib al redimensionar y crear miniatura

Buenas,
estoy desarrollando módulo de subida de imágenes al servidor en el que una vez subida la imagen primero la redimensiono y luego creo una miniatura, para ello estoy utilizando la clase image_lib pero no hay manera de que haga las dos cosas correctamente. Me explico, si redimensiono y luego creo la miniatura unicamente me crea la imagen redimensionada pero lo hace mal, me crea una imagen negra con una miniatura de la imagen en la esquina superior derecha. En cambio, si comento la función de redimensión me crea la miniatura correctamente, a parte de la imagen original que también es subida al servidor. Si comento la función que crea la miniatura me crea la imagen redimensionada correctamente en el servidor.
Por cierto, las funciones de redimensionar y crear minuatura las he creado dentro de un helper. Les muestro el código para ver si me pueden ayudar:

Código PHP:
<?php 
// image_helper.php
if(!defined('BASEPATH')) exit('No direct script access allowed');
    
if(!
function_exists("resizeImageTutorial"))
{
    function 
resizeImageTutorial($filename)
    {
        
$CI =& get_instance();
        
$config['image_library'] = 'gd2';
        
$config['source_image'] = $CI->config->item("upload_image_path").$filename;
        
$config['maintain_ratio'] = TRUE;
        
$config['width'] = $CI->config->item("image_width");
        
$config['height'] = $CI->config->item("image_height");
        
$config['master_dim'] = $CI->config->item("image_master_dim");
        
$config["quality"] = $CI->config->item("image_quality");
        
$CI->load->library('image_lib'$config);
        if(!
$CI->image_lib->resize())
            return 
$CI->image_lib->display_errors();
        return 
"";
    }
}    
    
if(!
function_exists("makeThumbnailTutorial"))
{    
    function 
makeThumbnailTutorial($filename)
    {
        
$CI =& get_instance();
        
$config['image_library'] = 'gd2';
        
$config['source_image'] = $CI->config->item("upload_image_path").$filename;
        
$config['maintain_ratio'] = TRUE;
        
$config['width'] = $CI->config->item("thumb_width");
        
$config['height'] = $CI->config->item("thumb_height");
        
$config['master_dim'] = $CI->config->item("thumb_master_dim");
        
$config["quality"] = $CI->config->item("thumb_quality");
        
$config["create_thumb"] = TRUE;
        
        
$CI->load->library('image_lib'$config);
        if(!
$CI->image_lib->resize())
            return 
$CI->image_lib->display_errors();
        return 
"";
    }
}    
    
if(!
function_exists("getThumbFilename"))
{     
    function 
getThumbFilename($filename)
    {
        
$pos strrpos($filename,".");
        echo 
substr($filename,0,$pos)."_thum".substr($filename,$pos);
    }
}
A continuación un fragmento del código del controlador:

Código PHP:
// este código se ejecuta justo después de hacer el upload de la imagen original al servidor.
$new_file $upload_data["file_name"];            
            
            if(
$upload_type=="image")
            {
                
resizeImageTutorial($new_file);
                
makeThumbnailTutorial($new_file);
                
$old_file $this->Catalogo->getImageTutorial($idtuto);
                if(!
is_null($old_file) && $old_file!="" && $old_file!=$new_file)
                    
$this->removeOldFile("image",$old_file);
                
$this->Catalogo->updateImageTutorial($idtuto,$new_file);
                
$view_data["image"] = $new_file;
            } 
A ver si pueden echarme un cable porque me estoy volviendo loco.

De antemano gracias.

Etiquetas: image_lib, resize, upload
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:32.