簡體   English   中英

代碼點火器圖像調整大小

[英]codeigniter image resize

我對codeigniter圖像調整大小有問題。 我將文件上傳為zip文件,然后解壓縮,解壓縮后,我掃描目錄以查找.jpg。 如果擴展名為.jpg,則需要調整大小。 當zip文件只有一個.jpg圖像時,它可以工作,但是當zip文件中有2個或更多的.jpg圖像文件時,它不起作用。

它確實掃描了所有的jpg文件,問題是它沒有調整大小。

上傳zip文件時,我想調整所有jpg文件的大小。

這是我的代碼:

$images = scandir('uploads/new');
//print_r($images);
foreach($images as $image){
    $last = substr($image, -3);
    if($last == 'jpg'){
        $image_path = './uploads/new/'.$image;

        //$config['image_library'] = 'gd2';
        $config['source_image'] = $image_path;
        $config['maintain_ratio'] = TRUE;
        $config['width'] = 100;
        $config['height'] = 100;

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

        $this->image_lib->resize(); 
    }
}       

您應該使用$ this-> image_lib-> clear();

清除功能會重置處理圖像時使用的所有值。 如果要循環處理圖像,則需要調用此方法。

$ this-> image_lib-> clear();

來自: http : //ellislab.com/codeigniter/user-guide/libraries/image_lib.html

還有一個提示:

無需使用字符串函數即可獲取文件擴展名。 您可以使用實際為您想要的東西而設計的: pathinfo():

$ext = pathinfo($image, PATHINFO_EXTENSION);

在您的情況下:

if(pathinfo($image, PATHINFO_EXTENSION) == 'jpg'){

這樣,如果您添加的擴展名超過3個字母,它將起作用;)

嘗試在foreach循環中清除配置

$images = scandir('uploads/new');
//print_r($images);
foreach($images as $image){
    $this->image_lib->clear(); // clear previous config
    $last = substr($image, -3);
    if($last == 'jpg'){
        $image_path = './uploads/new/'.$image;

        //$config['image_library'] = 'gd2';
        $config['source_image'] = $image_path;
        $config['maintain_ratio'] = TRUE;
        $config['width'] = 100;
        $config['height'] = 100;

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

        $this->image_lib->resize(); 
    }
}       

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM