[英]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.