茄子在线看片免费人成视频,午夜福利精品a在线观看,国产高清自产拍在线观看,久久综合久久狠狠综合

    <s id="ddbnn"></s>
  • <sub id="ddbnn"><ol id="ddbnn"></ol></sub>

  • <legend id="ddbnn"></legend><s id="ddbnn"></s>

    支持png透明圖片的php生成縮略圖類分享
    來源:易賢網(wǎng) 閱讀:1297 次 日期:2015-02-10 13:42:15
    溫馨提示:易賢網(wǎng)小編為您整理了“支持png透明圖片的php生成縮略圖類分享”,方便廣大網(wǎng)友查閱!

    這篇文章主要介紹了支持png透明圖片的php生成縮略圖類分享,本文代碼基于GD2圖形庫,實現(xiàn)支持png透明圖片生成縮略圖,需要的朋友可以參考下

    注:此功能依賴GD2圖形庫

    最近要用php生成縮略圖,在網(wǎng)上找了一下,發(fā)現(xiàn)了這篇文章:PHP生成圖片縮略圖

    試用了一下后,發(fā)現(xiàn)有這樣幾個問題:

    1、png圖片生成的縮略圖是jpg格式的

    2、png圖片生成的縮略圖沒有了透明(半透明)效果(填充了黑色背景)

    3、代碼語法比較老

    因此,在這個版本的基礎(chǔ)上簡單修改優(yōu)化了一下。

    PHP生成縮略圖類

    <?php

    /*

    * desc: Resize Image(png, jpg, gif)

    * author: 十年后的盧哥哥

    * date: 2014.11.13

    */

    class ResizeImage {

    //圖片類型

    private $type;

    //實際寬度

    private $width;

    //實際高度

    private $height;

    //改變后的寬度

    private $resize_width;

    //改變后的高度

    private $resize_height;

    //是否裁圖

    private $cut;

    //源圖象

    private $srcimg;

    //目標(biāo)圖象地址

    private $dstimg;

    //臨時創(chuàng)建的圖象

    private $im;

    function __construct($imgPath, $width, $height, $isCut, $savePath) {

    $this->srcimg = $imgPath;

    $this->resize_width = $width;

    $this->resize_height = $height;

    $this->cut = $isCut;

    //圖片的類型

    $this->type = strtolower(substr(strrchr($this->srcimg,"."),1));

    //初始化圖象

    $this->initi_img();

    //目標(biāo)圖象地址

    $this -> dst_img($savePath);

    //--

    $this->width = imagesx($this->im);

    $this->height = imagesy($this->im);

    //生成圖象

    $this->newimg();

    ImageDestroy ($this->im);

    }

    private function newimg() {

    //改變后的圖象的比例

    $resize_ratio = ($this->resize_width)/($this->resize_height);

    //實際圖象的比例

    $ratio = ($this->width)/($this->height);

    if($this->cut) {

    //裁圖

    $newimg = imagecreatetruecolor($this->resize_width,$this->resize_height);

    if($this->type=="png") {

    imagefill($newimg, 0, 0, imagecolorallocatealpha($newimg, 0, 0, 0, 127));

    }

    if($ratio>=$resize_ratio) {

    //高度優(yōu)先

    imagecopyresampled($newimg, $this->im, 0, 0, 0, 0, $this->resize_width,$this->resize_height, (($this->height)*$resize_ratio), $this->height);

    } else {

    //寬度優(yōu)先

    imagecopyresampled($newimg, $this->im, 0, 0, 0, 0, $this->resize_width, $this->resize_height, $this->width, (($this->width)/$resize_ratio));

    }

    } else {

    //不裁圖

    if($ratio>=$resize_ratio) {

    $newimg = imagecreatetruecolor($this->resize_width,($this->resize_width)/$ratio);

    if($this->type=="png") {

    imagefill($newimg, 0, 0, imagecolorallocatealpha($newimg, 0, 0, 0, 127));

    }

    imagecopyresampled($newimg, $this->im, 0, 0, 0, 0, $this->resize_width, ($this->resize_width)/$ratio, $this->width, $this->height);

    } else {

    $newimg = imagecreatetruecolor(($this->resize_height)*$ratio,$this->resize_height);

    if($this->type=="png") {

    imagefill($newimg, 0, 0, imagecolorallocatealpha($newimg, 0, 0, 0, 127));

    }

    imagecopyresampled($newimg, $this->im, 0, 0, 0, 0, ($this->resize_height)*$ratio, $this->resize_height, $this->width, $this->height);

    }

    }

    if($this->type=="png") {

    imagesavealpha($newimg, true);

    imagepng ($newimg,$this->dstimg);

    } else {

    imagejpeg ($newimg,$this->dstimg);

    }

    }

    //初始化圖象

    private function initi_img() {

    if($this->type=="jpg") {

    $this->im = imagecreatefromjpeg($this->srcimg);

    }

    if($this->type=="gif") {

    $this->im = imagecreatefromgif($this->srcimg);

    }

    if($this->type=="png") {

    $this->im = imagecreatefrompng($this->srcimg);

    }

    }

    //圖象目標(biāo)地址

    private function dst_img($dstpath) {

    $full_length = strlen($this->srcimg);

    $type_length = strlen($this->type);

    $name_length = $full_length-$type_length;

    $name = substr($this->srcimg,0,$name_length-1);

    $this->dstimg = $dstpath;

    }

    }

    ?>

    使用

    使用時,直接調(diào)用類的構(gòu)造函數(shù)即可,構(gòu)造函數(shù)如下:

    $resizeimage = new resizeimage($imgPath, $width, $height, $isCut, $savePath);

    參數(shù)

    $imgPath:原圖片地址

    $width:縮略圖寬

    $height:縮略圖高

    $isCut:是否裁剪,bool值

    $savePath:縮略圖地址(可以跟原圖片地址相同)

    示例

    <?php

    include "ResizeImage.php";

    //jpg

    $jpgResize = new ResizeImage("img/test_1920_1200.jpg", 320, 240, false, "img/test_320_240.jpg");

    //png

    $pngResize = new ResizeImage("img/test_1024_746.png", 320, 240, false, "img/test_320_240.png");

    ?>

    效果

    名單

    名單1

    更多信息請查看IT技術(shù)專欄

    更多信息請查看網(wǎng)絡(luò)編程
    易賢網(wǎng)手機(jī)網(wǎng)站地址:支持png透明圖片的php生成縮略圖類分享
    由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

    2026上岸·考公考編培訓(xùn)報班

    • 報班類型
    • 姓名
    • 手機(jī)號
    • 驗證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機(jī)站點 | 投訴建議
    工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
    云南網(wǎng)警備案專用圖標(biāo)
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
    云南網(wǎng)警報警專用圖標(biāo)