一起草最新网址_日韩一区二区麻豆国产_91视频婷婷_日本一区二区视频在线_日韩激情一区二区三区_国产另类第一区_成人免费在线播放视频_亚洲永久精品ww.7491进入_久久这里有精品视频_久久精品一级片_日韩av在线网页_波多野结衣不卡视频

PHP實現批量生成App各種尺寸Logo_PHP教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:PHP日期函數date格式化UNIX時間的方法
這篇文章主要介紹了PHP日期函數date格式化UNIX時間的方法,實例分析了php中date函數的使用技巧,需要的朋友可以參考下 本文實例講述了PHP日期函數date格式化UNIX時間的方法。分享給大家供大家參考。具體分析如下: 日期函數可以根據指定的格式將一個unix時間格式化成想要

 這篇文章主要介紹了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;
}
}

 

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

分享:PHP使用GETDATE獲取當前日期時間作為一個關聯數組的方法
這篇文章主要介紹了PHP使用GETDATE獲取當前日期時間作為一個關聯數組的方法,實例分析了php中GETDATE函數使用技巧,需要的朋友可以參考下 本文實例講述了PHP使用GETDATE獲取當前日期時間作為一個關聯數組的方法。分享給大家供大家參考。具體分析如下: PHP GETDATE函數是

來源:模板無憂//所屬分類:PHP教程/更新時間:2015-03-22
相關PHP教程
久久国产免费看| 成人h动漫精品一区二区无码 | 男人亚洲天堂网| 欧美一区二区公司| 国产亚洲欧美在线| 色爱av美腿丝袜综合粉嫩av| 蜜桃网站成人| 亚洲欧洲精品一区| 美女福利视频在线观看| 国产精品久久久久久久久久免费看| 日本在线视频不卡| 国产91富婆露脸刺激对白| 国产精品成人v| 欧美日韩在线免费观看视频| 亚洲一区二区三| 高清国产在线观看| 成人免费视频国产免费| 黑人巨大精品欧美黑白配亚洲| 97在线视频国产| 中国xxxx性xxxx产国| 国产一区二区电影| 日韩欧美高清dvd碟片| 精品国产一区二区在线| 91插插插影院| 粉嫩av一区二区三区| 亚洲在线观看一区| 99久久99久久精品国产片果冻| 伊人精品在线观看| 欧美久久久久久| 亚洲天堂一区在线观看| 亚洲第一av色| 亚洲精品一二三| 久久久久久91| 国产真实乱子伦精品视频| 亚洲天堂2020| 国产精品果冻传媒| 国产午夜久久久| 国产精品男女视频| 久久精品亚洲94久久精品| 日韩精品一区二| 欧美大奶子在线| 欧美黑人巨大xxx极品| 国产精品高潮呻吟视频| 欧美激情第一页在线观看| 日韩精品一区二区三区四| 日本高清久久久| 九色91porny| 在线观看黄网站| 亚洲精品第五页| 久久久亚洲精品一区二区三区 | 精品视频一区二区三区免费| 精品国产精品三级精品av网址| 欧美中文字幕亚洲一区二区va在线| 亚洲精品99久久久久| 中文字幕欧美日韩在线| 成人激情免费在线| 大香煮伊手机一区| 手机毛片在线观看| www.久久久久久久久久| 久久精品在线观看| 日本精品一区二区三区四区的功能| 欧美专区亚洲专区| 欧美美女操人视频| 日本亚洲欧洲色| 精品在线观看一区二区| 九九热免费在线观看| 一级特黄曰皮片视频| 美国毛片一区二区三区| 欧美日韩久久久| 亚洲一区二区三区777| wwwwwxxxx日本| 国产绿帽一区二区三区| 一区二区三区四区激情| 国产亚洲视频在线观看| 7777在线视频| 在线观看日本中文字幕| 男女男精品网站| 51精品久久久久久久蜜臀| 亚洲一区二区三区成人在线视频精品| 欧美三级一级片| 免费观看30秒视频久久| 欧美精品九九99久久| 91久久在线播放| 肉色超薄丝袜脚交69xx图片| 成人精品一区二区三区中文字幕| 尤物yw午夜国产精品视频| 国产a视频免费观看| 国产酒店精品激情| 伊人久久久久久久久久久| 99精品视频在线看| 日欧美一区二区| 自拍偷拍亚洲精品| 国内精品国产三级国产aⅴ久| 国产精品影音先锋| 国产夜色精品一区二区av| 欧美成人免费全部| 国产高清成人久久| 特黄一区二区三区| 免费观看在线综合色| 这里只有精品电影| 欧美性色黄大片人与善| 日韩精品1区2区| 91久久精品一区二区二区| 欧美日韩国产不卡在线看| 91麻豆免费视频网站| 91色视频在线| 欧美一级大片视频| 人成免费在线视频| 亚洲人成精品久久久久| 国产 高清 精品 在线 a| 久久精品黄色片| 日本久久一区二区| 欧美日韩在线一| 成人av电影免费在线播放| 国产精品入口福利| 五月天婷婷丁香| 日韩一级片在线播放| 99久久久无码国产精品6| 懂色av一区二区夜夜嗨| 欧美女同在线观看| 成人福利在线看| 久久久久久久久网站| 九九九久久久久久久| 亚洲男人的天堂在线观看| 国产成人精品视| 五月婷婷婷婷婷| 亚洲一区二区三区在线看| 91久久国产综合久久蜜月精品| 日韩黄色在线视频| 精品亚洲一区二区三区四区五区 | 麻豆91精品91久久久| 亚洲一级二级在线| 成人免费毛片播放| 久久久久99精品国产片| 国产精品日日摸夜夜添夜夜av| 国产欧美久久久| 中文字幕亚洲第一| 精品人妻无码一区| 欧美一三区三区四区免费在线看| 中文在线永久免费观看| 91精品国产综合久久久久久久| 特大黑人巨人吊xxxx| 一本到一区二区三区| 久久久久中文字幕亚洲精品| 欧美精品亚洲一区二区在线播放| 国产一级不卡毛片| 91成人免费电影| 亚洲美女精品视频| 亚洲高清一二三区| jizzjizzjizz国产| 91精品免费观看| 精品深夜av无码一区二区老年| 最新69国产成人精品视频免费| 国产精品边吃奶边做爽| 精品无人区太爽高潮在线播放 | 在线免费观看日本一区| 少妇视频一区二区| 午夜精品福利视频| 久久精品视频7| 国产亚洲精品综合一区91| 夜夜嗨av禁果av粉嫩avhd| 美女999久久久精品视频| 亚洲在线视频播放| 国产精品一区二区三区在线观| 人人妻人人玩人人澡人人爽| 国产精品日韩高清| 国产真实乱对白精彩久久| 久久久无码中文字幕久...| 黑人精品xxx一区一二区| 四虎精品免费视频| 欧美成人免费小视频| 国产精品女同一区二区| 中文字幕一区二区三区四区五区六区 | 国产美女扒开尿口久久久| 久久久天天操| 大西瓜av在线| 亚洲国产精品999| 欧美少妇bbw| 北条麻妃在线视频| 久久精品一本久久99精品| 在线观看中文字幕av| 视频一区二区在线观看| 亚洲视频在线一区二区| 91视频免费观看网站| 日韩亚洲在线观看| 九九**精品视频免费播放| 一二三av在线| 国产成人精品电影| 国产成人亚洲精品青草天美| 91九色在线观看视频| 亚洲嫩模很污视频| 久久99精品久久只有精品| 艳妇乳肉豪妇荡乳xxx| 久久精品91久久久久久再现| 精品一区二区三区免费| 欧美成人免费高清视频| 中文字幕日韩欧美| 国产成人亚洲综合色影视| 中文字幕在线播放一区| 国产精品欧美亚洲777777| 欧美午夜片在线免费观看| wwwav国产| 欧美一级爽aaaaa大片| 日韩成人在线视频网站| 99精品国产99久久久久久白柏| 亚洲欧美日韩一级| 成人av.网址在线网站| 在线不卡中文字幕| 国产成都精品91一区二区三| 麻豆成人在线视频| 国产一区二区网| 日产精品久久久一区二区福利| 欧美性感一区二区三区| 韩国欧美国产1区| 国产真实乱偷精品视频| 亚洲欧洲日产国码无码久久99| 欧美在线一区二区视频| 69精品人人人人| 久久久国产综合精品女国产盗摄| 日批视频免费观看| 国产乱了高清露脸对白| 国产91精品一区二区绿帽| 亚洲精品日韩欧美| 亚洲免费av网站| 精品制服美女久久| 国产精品久免费的黄网站| 特大黑人娇小亚洲女mp4| 欧美成人免费全部| 亚洲综合视频在线观看| 美国毛片一区二区| 中文字幕在线日本| 92看片淫黄大片一级| 国产在线一区二区三区欧美| 欧美激情精品久久久久久黑人| 日本精品一级二级| 亚洲国产电影在线观看| 蜜臀av在线播放一区二区三区| 国产成人亚洲精品自产在线| 女人色极品影院| 91精品黄色| 日韩免费观看av| 日韩欧美黄色影院| 91小视频在线免费看| 狠狠v欧美v日韩v亚洲ⅴ| 中文字幕在线观看你懂的| 国产又粗又猛又爽又黄的视频小说| 欧美日韩怡红院| 国产高清不卡av| 国产欧美久久一区二区| 欧美成人精品欧美一级私黄| 国产有码在线一区二区视频| 欧美中文在线免费| 亚洲欧美日韩区| 亚洲第一偷拍网| 日韩精品一区二区三区蜜臀| 欧美日韩视频在线观看一区二区三区 | 国产高清不卡无码视频| 91色视频在线观看| 日韩中文视频免费在线观看| 91精品久久久久久久99蜜桃| 欧美午夜电影一区| 在线观看一区二区视频| 五月天欧美精品| 午夜私人影院久久久久| 国产精品久久夜| 国产精品久久久久aaaa| 亚洲天堂成人在线观看| 亚洲激情自拍视频| 五月婷六月丁香| 久久综合久久网| 亚洲一级片网站| 狠狠操精品视频| 国产精品嫩草69影院| 国产熟女高潮一区二区三区| 欧美wwwwwww| 亚洲精品国产成人av在线| 欧日韩不卡视频| 91九色丨porny丨肉丝| 正在播放亚洲精品| 蜜臀av在线播放一区二区三区| 岛国精品一区二区| 中文字幕精品三区| 日韩欧美中文在线| 色哟哟精品一区| 亚洲成人黄色在线| 国语自产精品视频在线看| 欧美一二三视频| 欧美日韩精品不卡| 一区二区三区久久网| 一本一道久久a久久精品综合| 能在线观看的av网站| 波多野结衣一本| 中字幕一区二区三区乱码| 日本不卡高清视频一区| 国产厕所精品在线观看| 正在播放久久| 能看毛片的网站| 亚洲精品91天天久久人人| 国产自产高清不卡| 国产福利不卡视频| 福利视频一区二区| 亚洲精品一区二区三区四区高清| 久久夜精品香蕉| 日韩欧美亚洲在线| 亚洲乱码国产一区三区| 欧美日韩免费一区二区| 久久经典综合| 亚洲成人你懂的| 欧美激情国产日韩精品一区18| 日韩一区二区电影在线观看| 中文字幕在线播放一区二区| 亚洲一区二区视频在线播放| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 国产又粗又长又黄| 美女视频网站久久| 欧美二区在线观看| 亚洲午夜久久久久久久久电影院| 欧美性极品xxxx娇小| 性欧美xxxx交| 欧美日韩亚洲第一| 欧美精品韩国精品| 日韩av不卡一区二区| 欧美日韩一级大片网址| 国产精国产精品| 国产黄色一级网站| 亚洲天堂国产精品| 丁香婷婷综合五月| 亚洲欧美国产制服动漫| 伊人av成人| 草久视频在线观看| 亚洲色图另类专区| 日韩av不卡电影| 免费看黄色aaaaaa 片| 国产裸体无遮挡| 一区二区三区日韩欧美| 欧洲美女免费图片一区| 波多野结衣国产精品| 日产国产高清一区二区三区| 欧美精品一区二区三区蜜桃| 国产伦精品一区二区三区四区免费| mm131美女视频| 韩国成人精品a∨在线观看| 亚洲а∨天堂久久精品喷水| 成人黄色片免费| 秋霞网一区二区| 精品视频久久久| 亚洲精品偷拍视频| 国产免费视频一区二区三区| 99草草国产熟女视频在线| 男人操女人的视频在线观看欧美| 91精品国产免费| 男人添女荫道口图片| 视频一区视频二区在线观看| 欧美日韩国产经典色站一区二区三区 | 美腿丝袜一区二区三区| 亚洲全黄一级网站| 亚洲综合123| av男人天堂一区| 成人福利网站在线观看11| 日韩成人高清视频| 欧美一区二区精品| 在线免费观看av的网站| 久久综合九色综合97婷婷| 国产美女被下药99| 午夜精品三级久久久有码| 日韩一区国产二区欧美三区| 熟女少妇在线视频播放| 国产做a爰片久久毛片| 亚洲精品久久久久久久久久久| 国产成人手机视频| 国产资源在线一区| 久久影视免费观看 | 99国产精品国产精品久久| 国内精品久久久久久中文字幕| 久久久久久久久久97| 欧美日韩一区二区三区四区| 在线一区日本视频| 免费看黄色一级大片| 精品国产亚洲一区二区麻豆| 欧美激情免费看| 国产午夜福利精品| 欧美日韩国产精品一区二区不卡中文| 野外做受又硬又粗又大视频√| 成人国产精品免费观看动漫| 国产精品劲爆视频| www.亚洲黄色| 成人h视频在线| 亚洲视频在线观看一区二区 | 国产男女无遮挡| 亚洲第一av色| 又色又爽又黄18网站| 亚洲少妇30p| 九一精品在线观看| 色综合一区二区三区| 亚洲欧美日本一区| 日韩三级视频在线观看| 久久久久麻豆v国产| 日韩中文字幕视频在线| 久久久精品成人| 中文字幕一区电影| 日本精品人妻无码77777| 欧美另类69精品久久久久9999| 国产精久久久久久| 国语自产精品视频在线看| 欧美啪啪小视频| 久久99国产精品自在自在app| www日本高清视频| 日本电影一区二区三区| 亚洲美女视频在线| 久久亚洲无码视频|