韩国三级高清手机在线版-韩国三级电影久久-韩国三级hd中文字幕一男多女-韩国三级hd中文字幕久久精品-日本精品在线视频-日本精品在线观看视频

/**
 * 圖片工具類,支持縮略圖, 獲取類型等
 *

	
 *      ImgUtil::thumbnailTo("src.jpg",100,100,"src_100.jpg");
 *      ImgUtil::thumbnailBat("src.jpg",array(
 *          array("width"=>50,"height"=>50,"file"=>"src_50.jpg"),
 *          array("width"=>100,"height"=>100,"file"=>"src_100.jpg"),
 *          array("width"=>180,"height"=>180,"file"=>"src_180.jpg"),
 *      ));
 *
 */
class ImgUtil
{
    
 
    /**
     * 生成縮略圖
     * @param string $src       源文件路徑
     * @param int $width        縮略圖寬度
     * @param int $height       縮略圖高度
     * @param string $toFile    目標文件地址
     */
    public static function thumbnailTo($src, $width, $height, $toFile){
        return self::resizeTo($src, $width, $height, $toFile, true, true);
    }
    /**
     * 批量縮略圖
     * @param string $src   源文件路徑
     * @param array $list array(array("width"=>"寬","height"=>"高","file"=>"存儲文件路徑"))
     */
    public static function thumbnailBat($src, $list){
        $img = new ImgUtil($src);
        $srcImg = $img->resource;
        $srcWidth = imagesx($srcImg);
        $srcHeight = imagesy($srcImg);
        foreach($list as $k=>$info){
            $toWidth = $info["width"];
            $toHeight = $info["height"];
            self::scale($toWidth, $toHeight, $srcWidth, $srcHeight, true, true);
            $retImg = self::scaleToImg($srcImg, $toWidth, $toHeight, $srcWidth, $srcHeight);
            $toFile = $info["file"];
            self::saveTo($retImg, $toFile, $img->type);
            imagedestroy($retImg);
        }
        return true;
    }
    /**
     * 拉伸圖片到目標大小
     * @param string $src       源文件路徑
     * @param int $width        目標尺寸
     * @param int $height       目標尺寸
     * @param string $toFile    縮放后存儲文件
     */
    public static function resizeForceTo($src, $width, $height, $toFile){
        return self::resizeTo($src, $width, $height, $toFile, false, false);
    }
    /**
     * @param string $src        目錄文件
     * @param int $width         目標尺寸
     * @param int $height        目標尺寸
     * @param string $toFile     縮放后存儲文件
     * @param boolean $ratio     保持比例
     * @param boolean $thumbnail 如果為false支持等比放大 true則只支持等比從大到小
     */
    public static function resizeTo($src, $width, $height, $toFile, $ratio=TRUE, $thumbnail=FALSE){
        $img = new ImgUtil($src);
        $srcImg = $img->resource;
    
        $srcWidth = imagesx($srcImg);
        $srcHeight = imagesy($srcImg);
        self::scale($width, $height, $srcWidth, $srcHeight, $ratio, $thumbnail);
        $retImg = self::scaleToImg($srcImg, $width, $height, $srcWidth, $srcHeight);
        $img->destory();
        if(!$toFile || empty($toFile)){
            $toFile = $src;
        }
        self::saveTo($retImg, $toFile, $img->type);
        imagedestroy($retImg);
        return true;
    }
    /**
     * 縮放srcImgResource
     * @param resource $srcImg ImageResource
     * @param int $toWidth   toWidth
     * @param int $toHeight  toHeight
     * @param int $srcWidth  srcWidth
     * @param int $srcHeight srcHeight
     * @return resource      ImageResource
     */
    public static function scaleToImg($srcImg,$toWidth,$toHeight,$srcWidth=-1,$srcHeight=-1){
        if($srcWidth<0||$srcHeight<0){
            $srcWidth = imagesx($srcImg);
            $srcHeight = imagesy($srcImg);
        }
        if(function_exists("imagecopyresampled")){
            $toImg = imagecreatetruecolor($toWidth, $toHeight);
            imagecopyresampled($toImg,$srcImg,0,0,0,0,$toWidth,$toHeight,$srcWidth,$srcHeight);
        }else{
            $toImg = imagecreate($toWidth,$toHeight);
            imagecopyresized($toImg,$srcImg,0,0,0,0,$toWidth,$toHeight,$srcWidth,$srcHeight);
        }
        return $toImg;
    }
    /**
     * 根據是否保持比例是否縮略圖,計算縮放后的真實尺寸
     * @param int $toWidth       toWidth
     * @param int $toHeight      toHeight
     * @param int $srcWidth      srcWidth
     * @param int $srcHeight     srcHeight
     * @param boolean $ratio     保持比例
     * @param boolean $thumbnail 如果為false支持等比放大 true則只支持等比從大到小
     */
    public static function scale(&$toWidth,&$toHeight,$srcWidth,$srcHeight, $ratio=TRUE, $thumbnail=FALSE){
        if($ratio || $thumbnail){
            if($thumbnail && ($srcWidth<$toWidth && $srcHeight<$toHeight)){
                $toWidth = $srcWidth;
                $toHeight = $srcHeight;
            }else{
                if (($toWidth/$toHeight) <= ($srcWidth/$srcHeight)){
                    $toHeight = intval($toWidth * ($srcHeight / $srcWidth));
                }else{
                    $toWidth = intval($toHeight * ($srcWidth / $srcHeight));
                }
            }
        }
    }
    /**
     * 保存ImageResource到文件
     * @param resource $image
     * @param string $file
     * @param string $type
     */
    public static function saveTo($image,$file,$type="jpg"){
        if($type=="png"){
            imagepng($image, $file);
        }else if($type=="gif"){
            $transColor = imagecolorallocatealpha($image, 255, 255, 255, 127);
            imagecolortransparent($image, $transColor);
            imagegif($image, $file);
        }else{
            imagejpeg($image, $file, 100);
        }
    }   
    
    
    public $resource;
    public $type = null;
    public function __construct($src){
        if(is_string($src)){
            if(file_exists($src) && is_readable($src)){
                $info = getimagesize($src);
                if($info){
                    if ($info[2] == IMAGETYPE_JPEG){
                        $this->resource = imagecreatefromjpeg($src);
                        $this->type = "jpeg";
                    }else if($info[2] == IMAGETYPE_PNG){
                        $this->resource = @imagecreatefrompng($src);
                        $this->type = "png";
                    }else if($info[2] == IMAGETYPE_GIF){
                        $this->resource = @imagecreatefromgif($src);
                        $this->type = "gif";
                    }else if($info[2] == IMAGETYPE_BMP){
                        $this->resource = @imagecreatefromwbmp($src);
                        $this->type = "bmp";
                    }
                }
            }else{
                $this->resource = @imagecreatefromstring($src);
            }
        }else if(is_array($src) && count($src)>1){
            if(isset($src[0])){
                $this->resource = imagecreatetruecolor($src[0], $src[1]);
            }else{
                $this->resource = imagecreatetruecolor($src["width"], $src["height"]);
            }
        }else if(is_resource($src)){
            $this->resource = $src;
        }else if(get_class($src)==get_class($this)){
            $this->resource = $src->resource;
            $this->type = $src->type;
        }
        if($this->resource==null){
            throw new Exception("ArgumentError:".$src);
        }
    }
    public function width()
    {
        return imagesx($this->resource);
    }
    public function height()
    {
        return imagesy($this->resource);
    }
    public function save($file,$type=null){
        if($type==null){
            $type = $this->type;
        }
        self::saveTo($this->resource, $file, $type);
    }
    public function destory(){
        imagedestroy($this->resource);
    }
    
}
 
?>

 

穩定

產品高可用性高并發

貼心

項目群及時溝通

專業

產品經理1v1支持

快速

MVP模式小步快跑

承諾

我們選擇聲譽

堅持

10年專注高端品質開發
  • 返回頂部
浪货趴办公桌~H揉秘书| 玩两个丰满老熟女| 精品国产一区二区三区AV 性色 | 锕锕锕锕锕锕~好深啊APP| 亚洲综合久久成人AV| 亚洲AV片不卡无码一| 挺进邻居丰满少妇的身体| 日本熟妇乱人伦XXXX| 浓精喷进老师黑色丝袜| 久久综合给合久久狠狠狠97色| 娇妻被领导抱进卧室| 国产免费AV片在线无码免费看| 粉嫩av.一区二区三区免费| А√天堂资源官网在线资源| 99久久99这里只有免费费精品| 征服丝袜旗袍人妻| 一二三四免费观看高清在线| 亚洲欧美韩国综合色| 亚洲国产另类久久久精品| 亚洲AV成人一区二区三区天堂 | 国产精品原创巨作AV女教师| 丰满人妻一区二区三区Aⅴ在线 | 色欲麻豆国产福利精品| 日本不卡一区二区三区| 淫淫网站日本网站黑人大吊| 欧美性大战XXXXX久久久√| 女神被啪进深处娇喘在线观看| 胯下粗长挺进人妻体内电影| 久久久久亚洲精品无码网址色欲| 久久精品人人做人人爽电影蜜月| 精品国产三级A∨在线无码| 国内女人喷潮完整视频| 国偷自产AV一区二区三区| 国产亚洲精品精华液| 国产无套粉嫩白浆在线观看| 国产日韩精品中文字无码| 国产精品网站在线观看免费传媒 | 忘忧草WWW中文在线资源| 深入浅出糙汉X软妹V1V| 少妇搡BBBBⅩXX搡BBB| 熟婦久久无码人妻av蜜臀| 四川丰满少妇A级毛片| 无码国产偷倩在线播放| 亚洲AⅤ精品无码一区二区PRO| 亚洲AV不卡一区二区三区| 亚洲暴爽AV人人爽日日碰| 亚洲欧美日韩在线一区| 伊人久久大香线蕉AV成人| 中文字幕无码成人片| 99国精产品灬源码168| А√天堂8资源最新版| 宝贝感受到它在爱你吗病娇小说| 成人免费无码大片A毛片小说| 伽罗ちゃんが腿法是什么意思| 国产寡妇XXXX猛交| 好儿子妈妈今后就是你的人| 精品系列无码一区二区三区| 美女MM131爽爽爽作爱视频| 欧美最猛黑人XXXX黑人猛交| 日日碰狠狠添天天爽| 午夜DY888国产精品影院 | 国产精品久久久久9999赢消| 国产熟人AV一二三区| 精品久久久久久无码免费| 老外免费CSGO交易网站下载| 欧美一级内射黑人内射| 色婷婷五月综合亚洲小说| 小奶瓶(产奶)沈姜| 亚洲中文字幕爆乳人妻| A级黑粗大硬长爽 猛视频,| 放荡娇妻张开腿任人玩H| 国产无遮挡又黄又爽无VIP| 一边摸一边叫床一边爽AV | 亚洲人成人无码WWW| 在线天堂おっさんとわたし| H漫全彩纯肉无码网站| 国产Ⅴ亚洲V天堂A无码| 国内老熟妇对白XXXXHD| 麻豆一区区三区四区产品麻豆 | 色噜噜噜亚洲男人的天堂| 性饥渴老妇XXXⅩOOO| 一进一出一爽又粗又大| 凹凸人妻人人澡人人添| 国产精品一区二区国产馆蜜桃| 久久精品无码一区二区三区免费| 欧美金发尤物大战黑人| 天天澡天天揉揉AV无码| 亚洲精品中文字幕久久久久下载| 97精品国产一区二区三区| 高一数学网课免费-2| 精产国品一二三产区M553麻豆| 民工把奶头吸得又大又长| 贪婪洞窟H5双修流攻略小说 | 边做饭边被躁BD在线播放| 国产精品无码久久久久久| 久久久无码精品亚洲日韩按摩| 欧洲免费无线码在线一区| 无码专区天天躁天天躁在线| 岳把我用嘴含进满足我视频| 催眠~凌~辱~学园 在线观看| 狠狠色丁香婷婷综合潮喷| 欧美成人A猛片在线观看| 图片区小说区激情区偷拍区| 一米八五插一米六可以吗| 丰满人妻熟妇乱又伦精品APP| 女人来高潮水多视频| 特黄AAAAAAAAA毛片免费| 亚洲熟妇AV一区二区三区下载| 97精品人妻系列无码人妻| 国产精品美女久久久久久2018| 麻豆国产精品VA在线观看| 玩弄chinese丰满人妻| 中文字幕亚洲综合久久蜜桃| 国产激情精品一区二区三区| 毛很浓密超多黑毛| 无码人妻啪啪一区二区| 中文乱码字幕视频观看网站免费| 国产成人精品亚洲日本专区61| 老熟女重囗味HDXX70星空| 婷婷五月花丁香综合| …日韩人妻无码精品一专区| 国产日产欧产综合| 热99RE久久精品这里都是精品| 亚洲国产精品18久久久久久| 成熟人妻视频一区区三区| 久久久久久久久久国产精品免费 | 一本到午夜92版福利| 高黄暴H日本在线观看| 噜噜久久噜噜久久鬼88| 无码AV免费一区二区三区试看| 50岁熟妇的呻吟声对白| 韩国三级日本三级美三级| 日韩A无V码在线播放| 岳又紧又嫩又多水好爽| 国产熟妇人妻ⅩXXXX麻豆网址 | 尤物TV国产精品看片在线| 国产精品免费AⅤ片在线观看| 女人被弄到高潮的免费视频| 亚洲AV无码成人黄网站在线观看| 波多野结衣 美乳人妻| 久久中文骚妇内射| 性XXXX欧美老妇胖老太性多毛| TPU色母能与PA6色母通用吗| 久爱WWW成人网免费视频| 玩弄老太太的BB| 白嫩光屁股BBBBBBBBB| 理论片午午伦夜理片1| 亚洲AV无码国产一区二区三区四| 成人无码影片精品久久久| 男女上下拱试看120秒| 亚洲韩国精品无码一区二区三区| 疯狂做受XXXⅩ高潮视频免费| 欧美96在线 | 欧| 一本色道久久88加勒比—综合 | 国内精品久久久久久久久齐齐| 日产乱码一二三区别免费观看| 中文在线8资源库| 精品无码一区二区三区在线| 小辣椒AV福利在线网站| 动漫AV纯肉无码AV在线播放| 欧美成人精品在线| 在线播放无码后入内射少妇| 精品无人乱码高清| 亚洲AV成人无码精品区| 国产AV一区二区三区最新精品| 欧洲成人午夜精品无码区久久 | 精品卡一卡2卡三卡四卡乱码 | 久久精品女人天堂AV| 学生无码AV一区二区三区| 国产成人亚洲精品无码AV大片| 日本丰满老妇BBB| Japanese日本护士XXXX18一19| 蜜桃AV秘 无码一区二区三欧| 亚洲午夜无码久久久久蜜臀AV| 和岳每晚弄的高潮嗷嗷叫视频| 无码一区二区三区| 国产爆乳无码福利电影| 色婷婷亚洲精品综合影院| 边做饭边被躁BD苍井空小说 | 亚洲AV永久无码精品无码网站| 国产精品无码一区二区三区| 婷婷久久综合九色综合97| 丰满妇女强高潮18ⅩXXX小说| 日本无码视频精品一二三区| 把腿张开老子cao烂你n视频| 欧美熟妇SEXFREE| AV片在线观看免费| 欧美成人精品午夜免费影视| 2022一本久道久久综合狂躁| 妺妺坐在我腿上勃起弄了视频| 中文字幕人成无码人妻| 老赵揉搓苏清雅双乳| 游泳教练在水里含我奶小说| 久久精品一区二区三区AV| 亚洲综合激情七月婷婷| 久久久婷婷五月亚洲97号色| 中国女人FREE性HD| 嫩B人妻精品一区二区三区| AAAAA级大公开超高准确率| 漂亮人妻洗澡被公强啪啪|