亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

PHP實現批量生成App各種尺寸Logo

2024-05-04 23:32:56
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了PHP實現批量生成App各種尺寸Logo的方法和示例的核心代碼,非常的簡單實用,這里推薦給小伙伴們,有需要的可以參考下。
 

使用PHP GD,使用良好,一鍵剪裁各種尺寸,打包下載。經常換icon的懂的,美工給你一個1024的logo,你得ps出各種尺寸,于是有了這個東西。

核心代碼

 

復制代碼代碼如下:

<?php
class image {
    /**
     * source image
     *
     * @var string|array
     */
    private $source;
    /**
     * temporay image
     *
     * @var file
     */
    private $image;
    private $ext;
    /**
     * erros
     *
     * @var array
     */
    private $error;
    /**
     * construct
     *
     * @param string|array $source
     */
    public function __construct($source = NULL) {
        if($source != NULL) {
            $this->source($source);
        }
    }
    /**
     * set the source image
     *
     * @param string|array $source
     */
    public function source($source) { 
        if(!is_array($source)) {
            $this->source["name"] = $source;
            $this->source["tmp_name"] = $source;
            $type = NULL;
            $ext = strtolower(end(explode(".",$source)));
            switch($ext) {
                case "jpg"  : 
                case "jpeg" : $type = "image/jpeg"; break;
                case "gif"  : $type = "image/gif"; break;
                case "png"  : $type = "image/png"; break;
            }
            $this->source["type"] = $type;
        } else {
            $this->source = $source;
        }
        $this->destination = $this->source["name"];
    }
    /**
     * resize the image
     *
     * @param int $width
     * @param int $height
     */
    public function resize($width = NULL,$height = NULL) {
        if(isset($this->source["tmp_name"]) && file_exists($this->source["tmp_name"])) {
            list($source_width,$source_height) = getimagesize($this->source["tmp_name"]);
            if(($width == NULL) && ($height != NULL)) {
                $width = ($source_width * $height) / $source_height;
            }
            if(($width != NULL) && ($height == NULL)) {
                $height = ($source_height * $width) / $source_width;
            }
            if(($width == NULL) && ($height == NULL)) {
                $width = $source_width;
                $height = $source_height;
            }
            switch($this->source["type"]) {
                case "image/jpeg" : $created = imagecreatefromjpeg($this->source["tmp_name"]); break;
                case "image/gif"  : $created = imagecreatefromgif($this->source["tmp_name"]);  break;
                case "image/png"  : $created = imagecreatefrompng($this->source["tmp_name"]);  break;
            }
            $this->image = imagecreatetruecolor($width,$height);
            imagecopyresampled($this->image,$created,0,0,0,0,$width,$height,$source_width,$source_height);
        }
    }
    /**
     * add watermark on image
     *
     * @param string $mark
     * @param int $opac
     * @param int $x_pos
     * @param int $y_pos
     */
    public function watermark($mark,$opac,$x_pos,$y_pos) {
        if(file_exists($mark) && ($this->image != "")) {
            $ext = strtolower(end(explode(".",$mark)));
            switch($ext) {
                case "jpg"  : 
                case "jpeg" : $watermark = imagecreatefromjpeg($mark); break;
                case "gif"  : $watermark = imagecreatefromgif($mark);  break;
                case "png"  : $watermark = imagecreatefrompng($mark);  break;
            }
            list($watermark_width,$watermark_height) = getimagesize($mark);
            $source_width = imagesx($this->image);
            $source_height = imagesy($this->image);
            if($x_pos == "top") $pos  = "t"; else $pos  = "b";
            if($y_pos == "left") $pos .= "l"; else $pos .= "r";
            $dest_x = 0; 
            $dest_y = 0; 
            switch($pos) {
                case "tr" : $dest_x = $source_width - $watermark_width; break;
                case "bl" : $dest_y = $source_height - $watermark_height; break;
                case "br" : $dest_x = $source_width - $watermark_width; $dest_y = $source_height - $watermark_height; break;
            }
            imagecopymerge($this->image,$watermark,$dest_x,$dest_y,0,0,$watermark_width,$watermark_height,$opac);
        }
    }
    /**
     * crop the image
     *
     * @param int $x
     * @param int $y
     * @param int $width
     * @param int $height
     */
    public function crop($x,$y,$width,$height) {
        if(isset($this->source["tmp_name"]) && file_exists($this->source["tmp_name"]) && ($width > 10) && ($height > 10)) {
            switch($this->source["type"]) {
                case "image/jpeg" : $created = imagecreatefromjpeg($this->source["tmp_name"]); break;
                case "image/gif"  : $created = imagecreatefromgif($this->source["tmp_name"]);  break;
                case "image/png"  : $created = imagecreatefrompng($this->source["tmp_name"]);  break;
            }           
            $this->image = imagecreatetruecolor($width,$height);
            imagecopy($this->image,$created,0,0,$x,$y,$width,$height);
        }
    }
    /**
     * create final image file 
     *
     * @param string $destination
     * @param int $quality
     */
    public function create($destination,$quality = 100) {
        if($this->image != "") {
            $extension = substr($destination,-3,3);
            switch($extension) {
                case "gif" :  
                    imagegif($this->image,$destination,$quality); 
                    break;
                case "png" :
                    $quality = ceil($quality/10) - 1;
                    imagepng($this->image,$destination,$quality); 
                    break;
                default    : 
                    imagejpeg($this->image,$destination,$quality); 
                    break;
            }
        }
    }
    /**
     * check if extension is valid
     *
     */
    public function validate_extension() {
        if(isset($this->source["tmp_name"]) && file_exists($this->source["tmp_name"])) {
            $exts = array("image/jpeg", "image/pjpeg", "image/png", "image/x-png");
            $ext = $this->source["type"];
            $valid = 0;
            $this->ext = '.not_found';
            if ($ext == $exts[0] || $ext == $exts[1]) {
                $valid = 1;
                $this->ext = '.jpg';
            }
            // if ($ext == $exts[2]) {
            //  $valid = 1;
            //  $this->ext = '.gif';
            // }
            if ($ext == $exts[2] || $ext == $exts[3]) {
                $valid = 1;
                $this->ext = '.png';
            }
            if($valid != 1) {
                $this->error .= "extension";
            }
        } else {
            $this->error .= "source";
        }
    }
    /**
     * check if the size is correct
     *
     * @param int $max
     */
    public function validate_size($max) {
        if(isset($this->source["tmp_name"]) && file_exists($this->source["tmp_name"])) {
            $max = $max * 1024;
            if($this->source["size"] >= $max) {
                $this->error .= "size";
            }
        } else {
            $this->error .= "source";
        }
    }
    /**
     * check if the dimension is correct
     *
     * @param int $limit_width
     * @param int $limit_height
     */
    public function validate_dimension($limit_width,$limit_height) {
        if(isset($this->source["tmp_name"]) && file_exists($this->source["tmp_name"])) {
            list($source_width,$source_height) = getimagesize($this->source["tmp_name"]);
            if(($source_width > $limit_width) || ($source_height > $limit_height)) {
                $this->error .= "dimension";
            }
        } else {
            $this->error .= "source";
        }
    }
    /**
     * get the found errors
     *
     */
    public function error() {
        $error = array();
        if(stristr($this->error,"source")) $error[] = "找不到上傳文件";
        if(stristr($this->error,"dimension")) $error[] = "上傳圖片尺寸太大";
        if(stristr($this->error,"extension")) $error[] = "不符合要求的格式";
        if(stristr($this->error,"size")) $error[] = "圖片文件太大";
        return $error;
    }
    public function error_string() {
        $error = "";
        if(stristr($this->error,"source")) $error .= "找不到上傳文件 / ";
        if(stristr($this->error,"dimension")) $error .= "上傳圖片尺寸太大 / ";
        if(stristr($this->error,"extension")) $error .= "不符合要求的格式 / ";
        if(stristr($this->error,"size")) $error .= "圖片文件太大 / ";
        if(eregi(" / $", $error)) {
            $error = substr($error, 0, -3);
        }
        return $error;
    }
    public function ext() {
        return $this->ext;
    }
}

 

以上就是本文所述的全部內容了,希望大家能夠喜歡。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲成人a级网| 国内精品久久久| 成人情趣片在线观看免费| 国产91网红主播在线观看| 欧美日韩亚洲视频一区| 欧美大胆a视频| 尤物yw午夜国产精品视频明星| 欧亚精品在线观看| 亚州成人av在线| 91av福利视频| 国产成人高清激情视频在线观看| 日本三级韩国三级久久| 国产一区二区三区欧美| 亚洲一级片在线看| 久久精品在线播放| 中文字幕日韩欧美| 国产精品视频最多的网站| 久久视频国产精品免费视频在线| 欧美一区二区三区精品电影| 久久在线视频在线| 国产精品久久久久久久天堂| 疯狂做受xxxx高潮欧美日本| 久久综合电影一区| 欧美午夜无遮挡| 亚洲欧美精品一区二区| 日韩欧美视频一区二区三区| 国产不卡av在线| 疯狂蹂躏欧美一区二区精品| 成人美女免费网站视频| 亚洲欧洲日韩国产| 国产精品美女视频网站| 色无极影院亚洲| 精品久久久久久久久中文字幕| 97国产在线观看| 成人a视频在线观看| 欧美成人亚洲成人日韩成人| 亚洲一级黄色av| 亚洲视频日韩精品| 欧美亚洲激情在线| 日本91av在线播放| 精品免费在线视频| 欧美一级电影在线| 久久视频在线免费观看| 97香蕉超级碰碰久久免费软件| 日韩欧美在线国产| 欧美最顶级的aⅴ艳星| 九九热视频这里只有精品| 91国产精品电影| 国产精品久久久久久久天堂| 91在线观看免费高清完整版在线观看| 欧美日韩免费网站| 97超级碰碰碰久久久| 8090理伦午夜在线电影| 免费91麻豆精品国产自产在线观看| 国产精品久久久久秋霞鲁丝| 欧美日韩xxx| 欧美久久精品午夜青青大伊人| 亚洲福利视频免费观看| 欧美性猛xxx| 久久成人这里只有精品| 久久久精品视频成人| 亚洲精品中文字幕有码专区| 92版电视剧仙鹤神针在线观看| 欧洲中文字幕国产精品| 亚洲精品mp4| 日韩中文综合网| 欧美与黑人午夜性猛交久久久| 日本一区二区在线免费播放| 亚洲情综合五月天| 亚洲精品电影网| 亚洲综合在线小说| 日本精品久久电影| 久久久精品中文字幕| 91av视频在线观看| 亚洲欧美成人精品| 亚洲免费电影在线观看| 性金发美女69hd大尺寸| 国产日韩av在线| 91最新国产视频| 97在线看福利| 国产一区二区丝袜高跟鞋图片| 中文字幕不卡av| 亚洲无线码在线一区观看| 97久久超碰福利国产精品…| 51久久精品夜色国产麻豆| 九九九久久国产免费| 亚洲综合最新在线| 久久久久国产精品免费网站| 亚洲一区精品电影| 91丨九色丨国产在线| 午夜精品久久久99热福利| 欧美巨乳在线观看| 91中文在线视频| 亚洲欧洲国产伦综合| 欧美成人性生活| 97色在线视频| 亚洲欧美在线x视频| 丝袜美腿精品国产二区| 日韩色av导航| 国产精彩精品视频| 91精品国产综合久久男男| 欧美一级大胆视频| 久久精品视频在线播放| 国产精品美乳在线观看| 亚洲一区二区三区sesese| 亚洲人成在线观| 久久久久久久久久亚洲| 欧美孕妇孕交黑巨大网站| 久久九九热免费视频| 俺去啦;欧美日韩| 日韩毛片在线观看| 91亚洲精品久久久久久久久久久久| 欧美精品久久久久久久久久| 亚洲激情视频网站| 亚洲综合av影视| 8090成年在线看片午夜| 久久久99久久精品女同性| 欧美人成在线视频| 精品综合久久久久久97| 中文日韩在线观看| 久久久国产精彩视频美女艺术照福利| 日韩亚洲精品视频| 亚洲国产精品成人一区二区| 国产亚洲欧洲黄色| 欧美在线观看一区二区三区| 日韩精品视频在线播放| 亚洲第一精品夜夜躁人人爽| 国产精品欧美激情在线播放| 成人综合网网址| 久久免费视频观看| 色播久久人人爽人人爽人人片视av| 亚洲成色777777在线观看影院| 日韩欧美精品在线观看| 尤物yw午夜国产精品视频| 欧洲日本亚洲国产区| 久久伊人精品天天| 最近中文字幕mv在线一区二区三区四区| 粉嫩老牛aⅴ一区二区三区| 欧美制服第一页| 亚洲高清色综合| 亚洲欧洲激情在线| 91精品在线观| 中文字幕欧美视频在线| 国语自产偷拍精品视频偷| 97精品在线观看| 久久综合亚洲社区| 欧美一区在线直播| 成人国产精品久久久久久亚洲| 亚洲视频免费一区| 亚洲精品久久7777777| 日韩美女在线播放| 久久久久久中文| 日韩中文字幕不卡视频| 欧美最顶级的aⅴ艳星| 亚洲精品v欧美精品v日韩精品| 国自产精品手机在线观看视频| 久久亚洲精品一区二区| 欧美一级淫片播放口| 欧美日韩xxxxx| 国产91在线播放| 日韩精品中文字幕视频在线| 国产精品永久免费观看| 国产精品高潮呻吟久久av黑人| 国产精品色午夜在线观看|