使用CI框架生成縮略圖并做留白處理

CI框架的圖像處理類雖然可以支持等比例縮放淘钟,但是并不支持縮放后留白處理崇棠,也就是最后生成的畫布跟你所要求的寬高是不一樣的涛贯。如你要生成的圖片縮略圖為:360*172厕氨,最后生成的圖片可能是360*150,也有可能是120*172篷就。我們在做項目的時候有個要求射亏,需要縮略圖等比例縮放,并做兩邊留白處理竭业,所以在原有代碼的基礎上修改了一下下CI圖像處理類的源碼

ci圖像處理類: system/libraries/Image_lib.php

1.新增屬性

private $final_width;

private $final_height;

2.大概在第826行找到

$copy($dst_img, $src_img, 0, 0, $this->x_axis, $this->y_axis, $this->width, $this->height, $this->orig_width, $this->orig_height);

在它后面新增代碼:

//因項目需求鸦泳,生成的縮略圖需要留白處理 renguangzheng 18-01-28 start

if(!empty($this->final_width) && !empty($this->final_height))

{

? ? $final_image = imagecreatetruecolor($this->final_width,$this->final_height);// 新建一個真彩色圖像

$color = imagecolorallocate($final_image, 255, 255, 255);//為一幅圖像分配顏色

imagefill($final_image, 0, 0, $color);//區(qū)域填充背景色

$x = round(($this->final_width - $this->width) / 2);//對浮點數進行四舍五入,求x軸位置

$y = round(($this->final_height - $this->height) / 2);//對浮點數進行四舍五入永品,求y軸位置

imagecopy($final_image,$dst_img,$x,$y,0,0,$this->width,$this->height);// 拷貝圖像的一部分

// Show the image

if ($this->dynamic_output === TRUE)

{

? ? $this->image_display_gd($final_image);

}

elseif ( ! $this->image_save_gd($final_image)) // Or save it

{

? ? return FALSE;

}

imagedestroy($final_image);

}else

{

// Show the image

if ($this->dynamic_output === TRUE)

{

? ? $this->image_display_gd($dst_img);

}

elseif ( ! $this->image_save_gd($dst_img)) // Or save it

{

? ? return FALSE;

}

}

//因項目需求做鹰,生成的縮略圖需要留白處理 renguangzheng?18-01-28 end

注意:記得把那個多余的代碼要刪了,因為我把它放到if里邊了

// Show the image

if ($this->dynamic_output === TRUE)

{

$this->image_display_gd($dst_img);

}

elseif ( ! $this->image_save_gd($dst_img)) // Or save it

{

return FALSE;

}

3.調用修改后的圖像處理類生成縮略圖

$config['image_library'] = 'gd2';//設置要使用的圖像庫

$config['source_image'] = $imageInfo['full_path'];//設置原始圖像的名稱和路徑

$config['new_image'] = BRAND_LOGO_DIR;//設置目標圖像的名稱和路徑

$config['create_thumb'] = TRUE;//告訴圖像處理函數生成縮略圖

$config['maintain_ratio'] = TRUE;//指定是否在縮放或使用硬值的時候 使圖像保持原始的縱橫比例

$config['thumb_marker'] = '';//指定縮略圖后綴

$config['width'] = 360;//設置你想要的圖像寬度

$config['height'] = 172;//設置你想要的圖像高度

$config['final_width']? ? = 360;//設置最后生成的圖像寬度

$config['final_height']? = 172;//設置最后生成的圖像高度

//加載圖像處理類

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

if(!$this->CI->image_lib->resize())

{

? ? $error = $this->CI->image_lib->display_errors();

? ? var_dump($error);

}

這樣如果不需要留白邊的話鼎姐,只要不傳$config['final_width']和$config['final_height'] 就可以了钾麸,是不是比自己再重新寫個縮略圖的方法簡單多了


未修改前生成的縮略圖162*172


修改后生成360*172縮略圖

生成的圖像有白邊哦,你可以右鍵查查看

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末炕桨,一起剝皮案震驚了整個濱河市饭尝,隨后出現的幾起案子,更是在濱河造成了極大的恐慌献宫,老刑警劉巖钥平,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異姊途,居然都是意外死亡涉瘾,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門捷兰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來立叛,“玉大人,你說我怎么就攤上這事贡茅∶厣撸” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵顶考,是天一觀的道長赁还。 經常有香客問我,道長驹沿,這世上最難降的妖魔是什么艘策? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮甚负,結果婚禮上柬焕,老公的妹妹穿的比我還像新娘。我一直安慰自己梭域,他們只是感情好斑举,可當我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著病涨,像睡著了一般富玷。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上既穆,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天赎懦,我揣著相機與錄音,去河邊找鬼幻工。 笑死励两,一個胖子當著我的面吹牛,可吹牛的內容都是我干的囊颅。 我是一名探鬼主播当悔,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼踢代!你這毒婦竟也來了盲憎?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤胳挎,失蹤者是張志新(化名)和其女友劉穎饼疙,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體慕爬,經...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡窑眯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了医窿。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片伸但。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖留搔,靈堂內的尸體忽然破棺而出更胖,到底是詐尸還是另有隱情,我是刑警寧澤隔显,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布却妨,位于F島的核電站,受9級特大地震影響括眠,放射性物質發(fā)生泄漏彪标。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一掷豺、第九天 我趴在偏房一處隱蔽的房頂上張望捞烟。 院中可真熱鬧薄声,春花似錦、人聲如沸题画。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽苍息。三九已至缩幸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間竞思,已是汗流浹背表谊。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留盖喷,地道東北人爆办。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像课梳,于是被迫代替她去往敵國和親押逼。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內容