2011-07-03 10 views
6

necesito hacer dos imágenes de una sola imagen cargada. Estas imágenes deben tener un ancho fijo, - 180 y 300 píxeles.cambio de tamaño múltiple en CodeIgniter

En la parte inferior de mis resultados actuales. Esta función puede cambiar el tamaño y crear solo una de dos imágenes. Todo el mundo falló en la segunda imagen, lo intenté todo el día, pero no puedo encontrar la razón. Necesitas ayuda.

$this->_resize($data['upload_data']['file_name'], 300); 
$this->_resize($data['upload_data']['file_name'], 180); 
private function _resize($file_name, $size) { 
      $config['image_library'] = 'gd2'; 
      $config['source_image'] = 'img/upload/' . $file_name; 
      $config['dest_image'] = base_url() . 'img/'; 
      $config['create_thumb'] = TRUE; 
      $config['thumb_marker'] = '_' . $size; 
      $config['maintain_ratio'] = FALSE; 
      $config['width'] = $size; 
      $config['height'] = $size; 
      $this->load->library('image_lib', $config); 
      $result = $this->image_lib->resize(); 

      $this->image_lib->clear(); 
      return; 
     } 

estoy uso CodeIgniter 2,02

+0

que parece que podría ser un problema con el lugar donde va a guardar la imagen. No veo la opción 'dest_image' en los documentos, ¿tal vez debería establecer $ config ['new_image'] en su lugar? - http://codeigniter.com/user_guide/libraries/image_lib.html – jessica

+0

'thumb_marker' va a hacer el camino ... –

+0

que había sido el cambio como usted ha dicho, pero el error de acceso de retorno servidor (No se puede guardar la imagen por favor. asegúrese de que la imagen y el directorio de archivos sean escribibles). – NiLL

Respuesta

1

Nill

Piense ese problema se produce porque en la primera ejecución la secuencia de comandos se mueve archivo inicial a otra carpeta. Trate de usar:

$config['new_image'] = base_url() . 'img/'; 

en lugar de

$config['dest_image'] = base_url() . 'img/'; 
+0

No se puede guardar la imagen. Asegúrese de que la imagen y el directorio de archivos sean escribibles. No se puede guardar la imagen. Asegúrese de que la imagen y el directorio de archivos sean escribibles. Su servidor no soporta la función GD requerido para procesar este tipo de imagen. – NiLL

+0

chmod para todos 777 – NiLL

+0

Y pregunta tonta pero tienes GD instalado?) –

5

Esto podría ayudarle, de la guía de usuario

Una buena práctica es utilizar la función de procesamiento condicionalmente, mostrando un error en caso de fallo, como esto:

if (! $this->image_lib->resize()) 
{ 
    echo $this->image_lib->display_errors(); 
} 
+0

Su servidor no soporta la función GD requerido para procesar este tipo de imagen. – NiLL

+0

Me fue enviado en la segunda iteración. – NiLL

15

Dont image_lib carga varias veces. Añadir image_lib en librerías de autocarga y cambiar

$this->load->library('image_lib', $config); 

a

$this->image_lib->initialize($config); 
1

me encontré este problema. En mi caso, puse la fuente de imagen y new_image sin base_url o REAL_PATH:

public function create_thumbnail($file_name='2012_02_23_15_06_00_1.jpg'){ 
    $this->layout = false; 
    $image_url = PATH_TO_IMAGE_ARTICLE.DIRECTORY_SEPARATOR; 
    $config['image_library'] = 'gd2'; 
    $config['source_image'] = 'assets/img/content/article/'.$file_name; 
    $config['create_thumb'] = FALSE; 
    $config['maintain_ratio'] = TRUE; 
    $config['width'] = 210; 
    $config['height'] = 160;  
    $config['new_image'] = 'assets/img/content/article/thumb/thumb_' . $file_name; 

    $this->load->library('image_lib', $config); 
    if(!$this->image_lib->resize()) 
    { 
     echo $this->image_lib->display_errors();exit; 
    } 
    return TRUE; 
} 

Ver? usted no pone

pero

$config['new_image'] = 'assets/img/content/article/thumb/thumb_' . $file_name; 
+0

usando base_url(), tu image_source o tu new_image tendrán el prefijo 'http: // domain_or_localhost'. usando REAL_PATH como C: // htdocs/blablabla/simplemente complica cosas como no escribible, etc., etc. –

Cuestiones relacionadas