Ridimensionare l’immagine di Codeigniter?

Ho un problema con la class immagine in CI?

Questo è un esempio

Sul controller:

$this->load->library( array('image_lib') ); 

A vista ho questo:

  foreach($results as $row) { $config['image_library'] = 'gd2'; $config['source_image'] = '/img/proizvodi/'.$row->proizvodid.'.jpg'; $config['create_thumb'] = TRUE; $config['maintain_ratio'] = TRUE; $config['width'] = 75; $config['height'] = 50; $this->load->library('image_lib', $config); $this->image_lib->resize(); } 

Ma non ho avuto errori e l’immagine del pollice non è stata creata? Non so dov’è l’errore?

Non dovresti caricare image_lib in foreach. Prova ad usare il codice qui sotto

 $this->load->library('image_lib'); foreach($results as $row) { $config['image_library'] = 'gd2'; $config['source_image'] = '/img/proizvodi/'.$row->proizvodid.'.jpg'; $config['create_thumb'] = TRUE; $config['maintain_ratio'] = TRUE; $config['width'] = 75; $config['height'] = 50; $this->image_lib->clear(); $this->image_lib->initialize($config); $this->image_lib->resize(); } 

Se non funziona, controlla le autorizzazioni della cartella di caricamento.

 function uploadimage() { $file_name = $this->input->post('fileName'); $imageName = 'set_'.file_name($_FILES["file"]['name'],date('Ymd_his')); $config['image_library'] = 'gd2'; $config['source_image'] = $imageName; $config['create_thumb'] = TRUE; $config['maintain_ratio'] = TRUE; $config['master_dim'] = 'width'; upload_resize('file','settings', $imageName ); $config['width'] = 200; $config['height'] = 62; $this->load->library('image_lib', $config); $this->image_lib->initialize($config); $this->image_lib->resize(); $this->image_lib->clear(); $json_data = array( 'error' =>false, 'tmp_name' =>$file_name, 'file_name' =>base_url().'assets/uploads/settings/'.$imageName.'?dummy='.rand(0,1000), 'file_path' =>$imageName ); echo json_encode($json_data); } } 

questo codice carica l’immagine nella cartella prima di salvarla sulla tabella.

 $config['upload_path'] = './berkas/content/'; $config['allowed_types'] = 'gif|jpg|png'; $config['max_size'] = 0; $config['max_width'] = 1024000; $config['max_height'] = 7680000; $config['encrypt_name'] = TRUE; $config['overwrite'] = FALSE; $this->load->library('upload', $config); $upload_data = $this->upload->data(); $file_name = $upload_data['file_name']; $params['gambar'] = $file_name; $this->load->library('image_lib'); $config['image_library'] = 'gd2'; $config['source_image'] = './berkas/content/'.$file_name; $config['create_thumb'] = FALSE; $config['maintain_ratio'] = TRUE; $config['width'] = 550; $config['height'] = 350; $params = array('gambar' => $file_name); 

Se l’immagine di destinazione contiene un rapporto aspetto diverso rispetto all’immagine sorgente, l’immagine sorgente verrà ritagliata nello stesso rapporto dell’immagine di destinazione.

 public function resize_image($image_data){ $this->load->library('image_lib'); $w = $image_data['image_width']; // original image's width $h = $image_data['image_height']; // original images's height $n_w = 273; // destination image's width $n_h = 246; // destination image's height $source_ratio = $w / $h; $new_ratio = $n_w / $n_h; if($source_ratio != $new_ratio){ $config['image_library'] = 'gd2'; $config['source_image'] = './uploads/uploaded_image.jpg'; $config['maintain_ratio'] = FALSE; if($new_ratio > $source_ratio || (($new_ratio == 1) && ($source_ratio < 1))){ $config['width'] = $w; $config['height'] = round($w/$new_ratio); $config['y_axis'] = round(($h - $config['height'])/2); $config['x_axis'] = 0; } else { $config['width'] = round($h * $new_ratio); $config['height'] = $h; $size_config['x_axis'] = round(($w - $config['width'])/2); $size_config['y_axis'] = 0; } $this->image_lib->initialize($config); $this->image_lib->crop(); $this->image_lib->clear(); } $config['image_library'] = 'gd2'; $config['source_image'] = './uploads/uploaded_image.jpg'; $config['new_image'] = './uploads/new/resized_image.jpg'; $config['maintain_ratio'] = TRUE; $config['width'] = $n_w; $config['height'] = $n_h; $this->image_lib->initialize($config); if (!$this->image_lib->resize()){ echo $this->image_lib->display_errors(); } else { echo "done"; }} 

Ho preparato una guida passo passo su come ridimensionare l’immagine in codeigniter senza perdere la qualità

Ho provato sotto il codice. Si prega di controllare.

 if (isset($_FILES['image']) && !empty($_FILES['image']['name'])) { $upload_path="uploads/foldername/"; $newFileName = explode(".",$_FILES['image']['name']); $filename = time()."-".rand(00,99).".".end($newFileName); $filename_new = time()."-".rand(00,99)."_new.".end($filename); $config['file_name'] = $filename; $config['upload_path'] = $upload_path; $config['allowed_types'] = 'gif|jpg|png|jpeg'; $this->load->library('upload', $config); if ($this->upload->do_upload('image')) { //Image Resizing $config1['source_image'] = $this->upload->upload_path.$this->upload->file_name; $config1['new_image'] = 'uploads/foldername/'.$filename_new; $config1['maintain_ratio'] = FALSE; $config1['width'] = 181; $config1['height'] = 181; $this->load->library('image_lib', $config1); if ( ! $this->image_lib->resize()){ $this->session->set_flashdata('message', $this->image_lib->display_errors('', '')); } $post_data['image'] = $filename; } else { $this->session->set_flashdata('msg',$this->upload->display_errors()); } }