2013-10-07 8 views
6

मुझे सीआई में छवि वर्ग के साथ समस्या है?कोडनिर्देशक छवि का आकार बदलना?

यह उदाहरण

नियंत्रक पर है:

$this->load->library(array('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->load->library('image_lib', $config); 
$this->image_lib->resize(); 
} 

लेकिन मैं कोई त्रुटि है, और अंगूठे छवि नहीं बनाई गई है? मुझे नहीं पता कि गलती कहां है?

+1

$ echo-> image_lib-> display_errors(); इस फ़ंक्शन का उपयोग करने जैसी छवि_लिब त्रुटि की जांच करें। – Ts8060

उत्तर

17

आपको foreach में image_lib लोड नहीं करना चाहिए। नीचे दिए गए कोड का उपयोग करने के लिए

$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(); 
} 

यदि यह काम नहीं करेगा - अपलोड फ़ोल्डर अनुमतियां जांचें।

+3

आप आकार बदलने के बाद स्पष्ट उपयोग कर सकते हैं – umefarooq

1
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); 
    } 
} 

यह कोड तालिका में सहेजने से पहले फ़ोल्डर में छवि अपलोड करें।

1
$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); 
0

गंतव्य छवि स्रोत छवि से एक अलग पहलू अनुपात होता है, तो स्रोत छवि गंतव्य छवि है की इसी अनुपात काटा-छांटा जाएगा।

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"; 

}} 

मैं कैसे resize image in codeigniter without loosing quality

0

मैं नीचे दिए गए कोड की कोशिश की है पर कदम गाइड द्वारा एक कदम तैयार किया है। कृपया जांचें।

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()); 
    } 
} 
संबंधित मुद्दे