最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php生成縮略圖填充白邊(等比縮略圖方案)

 更新時(shí)間:2013年12月25日 12:18:10   作者:  
上傳圖片直接縮放的話就會(huì)導(dǎo)致圖片變形,這樣體驗(yàn)肯定就不好了。下面提供一種解決方法,縮小后添加白邊的方法看下面的代碼實(shí)現(xiàn)

網(wǎng)站上傳圖片后生成縮略圖應(yīng)該是非常常用的功能了,通常來講為了網(wǎng)站顯示美觀,縮略圖會(huì)是同樣尺寸,比如最近筆者做的一個(gè)站點(diǎn),縮略圖規(guī)格要求都是160×120。但是如果上傳的圖片比例和縮略圖不一致,直接縮放的話就會(huì)導(dǎo)致圖片變形,這樣體驗(yàn)肯定就不好了。于是筆者想了一個(gè)折中的辦法,就是縮小后添加白邊的方法。

源圖,尺寸是600×366:

最終生成的效果圖:

代碼相對(duì)比較長(zhǎng)些,下面簡(jiǎn)單說下思路:

先將源圖按比例生成縮略圖,并且寬不大于160、高不大于120。例如上圖會(huì)先生成160×98的縮略圖。
新建一個(gè)160×120的白色背景圖片,將上一步生成的縮略圖居中放置到這張圖片上就OK了。
最終代碼如下:

復(fù)制代碼 代碼如下:

//源圖的路徑,可以是本地文件,也可以是遠(yuǎn)程圖片
$src_path = '1.jpg';
//最終保存圖片的寬
$width = 160;
//最終保存圖片的高
$height = 120;

//源圖對(duì)象
$src_image = imagecreatefromstring(file_get_contents($src_path));
$src_width = imagesx($src_image);
$src_height = imagesy($src_image);

//生成等比例的縮略圖
$tmp_image_width = 0;
$tmp_image_height = 0;
if ($src_width / $src_height >= $width / $height) {
    $tmp_image_width = $width;
    $tmp_image_height = round($tmp_image_width * $src_height / $src_width);
} else {
    $tmp_image_height = $height;
    $tmp_image_width = round($tmp_image_height * $src_width / $src_height);
}

$tmpImage = imagecreatetruecolor($tmp_image_width, $tmp_image_height);
imagecopyresampled($tmpImage, $src_image, 0, 0, 0, 0, $tmp_image_width, $tmp_image_height, $src_width, $src_height);

//添加白邊
$final_image = imagecreatetruecolor($width, $height);
$color = imagecolorallocate($final_image, 255, 255, 255);
imagefill($final_image, 0, 0, $color);

$x = round(($width - $tmp_image_width) / 2);
$y = round(($height - $tmp_image_height) / 2);

imagecopy($final_image, $tmpImage, $x, $y, 0, 0, $tmp_image_width, $tmp_image_height);

//輸出圖片
header('Content-Type: image/jpeg');
imagejpeg($final_image);

相關(guān)文章

  • thinkPHP+ajax實(shí)現(xiàn)統(tǒng)計(jì)頁(yè)面pv瀏覽量的方法

    thinkPHP+ajax實(shí)現(xiàn)統(tǒng)計(jì)頁(yè)面pv瀏覽量的方法

    這篇文章主要介紹了thinkPHP+ajax實(shí)現(xiàn)統(tǒng)計(jì)頁(yè)面pv瀏覽量的方法,涉及thinkPHP模板調(diào)用及數(shù)據(jù)庫(kù)讀寫相關(guān)操作技巧,需要的朋友可以參考下
    2017-03-03
  • 基于Laravel 多個(gè)中間件的執(zhí)行順序詳解

    基于Laravel 多個(gè)中間件的執(zhí)行順序詳解

    今天小編就為大家分享一篇基于Laravel 多個(gè)中間件的執(zhí)行順序詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • php定義數(shù)組和使用示例(php數(shù)組的定義方法)

    php定義數(shù)組和使用示例(php數(shù)組的定義方法)

    這篇文章主要介紹了php定義數(shù)組和使用示例(php數(shù)組的定義方法),需要的朋友可以參考下
    2014-03-03
  • laravel框架中視圖的基本使用方法分析

    laravel框架中視圖的基本使用方法分析

    這篇文章主要介紹了laravel框架中視圖的基本使用方法,結(jié)合實(shí)例形式分析了laravel框架中視圖的原理、調(diào)用及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-11-11
  • CI(CodeIgniter)框架配置

    CI(CodeIgniter)框架配置

    今天研究了下CI框架的說明文檔,打算在下次項(xiàng)目中用用看。先把今天看完的內(nèi)容整理整理,基本配置非常簡(jiǎn)單,好像在配置方面 在沒有比ci框架簡(jiǎn)便的了。。
    2014-06-06
  • Laravel自定義 封裝便捷返回Json數(shù)據(jù)格式的引用方法

    Laravel自定義 封裝便捷返回Json數(shù)據(jù)格式的引用方法

    今天小編就為大家分享一篇Laravel自定義 封裝便捷返回Json數(shù)據(jù)格式的引用方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • laravel5創(chuàng)建service provider和facade的方法詳解

    laravel5創(chuàng)建service provider和facade的方法詳解

    這篇文章主要介紹了laravel5創(chuàng)建service provider和facade的方法,實(shí)例分析了laravel創(chuàng)建service、provider和facade類的具體步驟與實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2016-07-07
  • PHP產(chǎn)生不重復(fù)隨機(jī)數(shù)的5個(gè)方法總結(jié)

    PHP產(chǎn)生不重復(fù)隨機(jī)數(shù)的5個(gè)方法總結(jié)

    這篇文章主要介紹了PHP產(chǎn)生不重復(fù)隨機(jī)數(shù)的5個(gè)方法總結(jié),PHP隨機(jī)數(shù)經(jīng)常在項(xiàng)目中使用,本文總結(jié)了網(wǎng)絡(luò)上的和自己項(xiàng)目中用到的隨機(jī)數(shù)生成方法,需要的朋友可以參考下
    2014-11-11
  • php cc攻擊代碼與防范方法

    php cc攻擊代碼與防范方法

    今天把客戶查找后門的時(shí)候發(fā)現(xiàn)的代碼,特分享下,看到這樣的代碼就是黑客用來攻擊別人訪問,不斷訪問指定網(wǎng)站,導(dǎo)致網(wǎng)站無法訪問,我們的網(wǎng)站就是幫兇了,同時(shí)我們自己的網(wǎng)站或服務(wù)器也會(huì)無法訪問,所以一定要注意防范。
    2012-10-10
  • Laravel如何同時(shí)連接多個(gè)數(shù)據(jù)庫(kù)詳解

    Laravel如何同時(shí)連接多個(gè)數(shù)據(jù)庫(kù)詳解

    這篇文章主要給大家介紹了關(guān)于Laravel如何同時(shí)連接多個(gè)數(shù)據(jù)庫(kù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Laravel具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08

最新評(píng)論

巢湖市| 吉水县| 武安市| 闵行区| 泰州市| 苍南县| 彰武县| 伊宁市| 微博| 平罗县| 山阴县| 股票| 桑植县| 福清市| 自贡市| 龙井市| 津南区| 金山区| 东乌珠穆沁旗| 温宿县| 阿拉善右旗| 赤水市| 博乐市| 平定县| 乌拉特后旗| 上虞市| 深州市| 普宁市| 海南省| 冷水江市| 崇州市| 灵宝市| 津南区| 沙坪坝区| 桐柏县| 玛沁县| 平顺县| 通辽市| 临邑县| 宣恩县| 沾益县|