中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

PHP實(shí)現(xiàn)批量生成App各種尺寸Logo
來源:易賢網(wǎng) 閱讀:1227 次 日期:2015-03-23 14:45:20
溫馨提示:易賢網(wǎng)小編為您整理了“PHP實(shí)現(xiàn)批量生成App各種尺寸Logo”,方便廣大網(wǎng)友查閱!

這篇文章主要介紹了PHP實(shí)現(xiàn)批量生成App各種尺寸Logo的方法和示例的核心代碼,非常的簡單實(shí)用,這里推薦給小伙伴們,有需要的可以參考下。

使用PHP GD,使用良好,一鍵剪裁各種尺寸,打包下載。經(jīng)常換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;

}

}

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

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

更多信息請查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:PHP實(shí)現(xiàn)批量生成App各種尺寸Logo
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

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

  • 報班類型
  • 姓名
  • 手機(jī)號
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機(jī)站點(diǎn) | 投訴建議
工業(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)
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
亚洲九九精品| 亚洲欧洲av一区二区三区久久| 亚洲精品久久久蜜桃| 在线不卡亚洲| 亚洲国产裸拍裸体视频在线观看乱了中文 | 国产精品日韩欧美| 国产精品一区二区视频| 韩国v欧美v日本v亚洲v| 日韩视频一区二区三区在线播放免费观看| 一区二区三区国产在线| 91久久久亚洲精品| 亚洲女优在线| 欧美α欧美αv大片| 国产精品私拍pans大尺度在线 | 国产精品jvid在线观看蜜臀| 国产精品免费观看在线| 亚洲美女黄网| 一区二区三区日韩| 久久久久久亚洲精品中文字幕| 国产深夜精品| 欧美国产成人精品| 亚洲一线二线三线久久久| 国产精品推荐精品| 久久电影一区| 亚洲国产精品99久久久久久久久| 浪潮色综合久久天堂| 亚洲成人自拍视频| 欧美日韩精品伦理作品在线免费观看| 一本久久综合亚洲鲁鲁| 国产精品久久久久久久久借妻 | 国产精品久久久久aaaa| 亚洲天堂av在线免费| 国产私拍一区| 欧美午夜免费影院| 日韩视频免费观看| 国产伦精品一区二区三区视频孕妇| 欧美一区二区成人| 亚洲精品黄色| 国产麻豆精品久久一二三| 男人的天堂亚洲在线| 亚洲尤物在线| 亚洲激情六月丁香| 国产欧美一区二区三区在线老狼| 麻豆精品网站| 久久九九精品| 亚洲综合久久久久| 99re成人精品视频| 亚洲国产成人久久| 国产一区二区无遮挡| 欧美日韩国产色综合一二三四| 老司机免费视频一区二区| 性做久久久久久久免费看| 亚洲少妇自拍| 亚洲女同同性videoxma| 亚洲色图综合久久| 亚洲男同1069视频| 欧美一区二区在线播放| 欧美日韩视频第一区| 久久亚洲春色中文字幕| 久久精品亚洲乱码伦伦中文| 欧美一区二区三区精品| 欧美在线免费看| 欧美在线看片a免费观看| 欧美在线影院| 鲁大师成人一区二区三区| 欧美高清影院| 国产精品一区久久久| 狠狠色狠色综合曰曰| 亚洲国产精品成人va在线观看| 亚洲精品乱码久久久久久| 99国产精品视频免费观看| 一区二区三区四区精品| 久久精品夜色噜噜亚洲a∨| 欧美成人精品不卡视频在线观看| 欧美激情一区二区三区四区| 欧美日韩在线精品| 国内精品免费午夜毛片| 99综合视频| 巨胸喷奶水www久久久免费动漫| 欧美成人午夜77777| 国产女精品视频网站免费 | 国产精品久久久久久久久婷婷| 亚洲国产专区校园欧美| 一区二区三区高清视频在线观看 | 欧美在线播放一区二区| 欧美日韩高清在线一区| 在线观看成人网| 香蕉久久精品日日躁夜夜躁| 国产精品日韩一区二区三区| 亚洲精品偷拍| 欧美国产综合视频| 亚洲国产精品精华液网站| 欧美一区二区三区男人的天堂 | 久久精品成人一区二区三区| 国产精品久久久一本精品| 一区二区三区国产盗摄| 欧美日韩国产丝袜另类| 99精品免费网| 欧美先锋影音| 亚洲欧美日本精品| 国产精品人人做人人爽| 亚洲欧美视频一区二区三区| 国产精品日韩专区| 久久精品国产99国产精品| 国产精品一区二区视频| 欧美亚洲色图校园春色| 韩国精品在线观看| 男男成人高潮片免费网站| 亚洲福利免费| 欧美亚洲成人网| 欧美伊人久久| 亚洲国产精品一区在线观看不卡| 欧美精品久久天天躁| 一区二区三区国产盗摄| 国产欧美一区二区三区在线老狼| 久久欧美肥婆一二区| 99精品国产福利在线观看免费 | 激情久久久久久久久久久久久久久久| 欧美一区激情| 99精品国产福利在线观看免费| 国产精品福利av| 久久免费精品视频| 亚洲婷婷综合久久一本伊一区| 国产农村妇女精品一二区| 欧美1区2区| 亚洲一区二区精品视频| 亚洲二区在线| 韩日欧美一区二区三区| 欧美三级网址| 欧美日韩一区在线| 欧美精品激情在线观看| 久久综合狠狠| 久久成人这里只有精品| 一区二区三区高清不卡| 日韩亚洲欧美一区二区三区| 亚洲精品久久久蜜桃| 亚洲国产电影| 曰韩精品一区二区| 亚洲第一精品久久忘忧草社区| 狠狠色噜噜狠狠狠狠色吗综合| 国产亚洲精品7777| 国产拍揄自揄精品视频麻豆| 国产日韩欧美视频在线| 国产欧美亚洲一区| 韩国av一区二区三区四区| 精品av久久久久电影| 亚洲日韩欧美视频| 99视频+国产日韩欧美| 亚洲女爱视频在线| 久久精品视频播放| 欧美顶级大胆免费视频| 欧美了一区在线观看| 国产精品入口夜色视频大尺度| 国产精品一二| 亚洲欧洲精品一区二区三区| 妖精成人www高清在线观看| 一本色道久久综合狠狠躁篇的优点| 999在线观看精品免费不卡网站| 亚洲一级黄色片| 欧美激情亚洲一区| 免费亚洲视频| 国产精品人成在线观看免费| 亚洲国产精品www| 亚洲欧美日本国产有色| 久久综合五月天婷婷伊人| 国产精品大片免费观看| 一区二区在线免费观看| 一区二区三区高清在线| 欧美在现视频| 欧美婷婷久久| 亚洲精品国产精品久久清纯直播| 亚洲永久在线观看| 欧美日本高清视频| 91久久精品国产91久久| 欧美一区二区三区的| 欧美日韩爆操| 亚洲激情另类| 欧美成人精品一区二区三区| 国产欧美日韩视频一区二区| 亚洲午夜一级| 国产精品高清网站| 亚洲午夜一级| 国产精品成人一区二区三区夜夜夜 | 国产伦精品一区| 亚洲一二三区在线观看| 欧美私人网站| 亚洲一区二区三区四区视频| 欧美日韩大片| 亚洲专区一区| 国产丝袜一区二区| 久久久亚洲一区| 亚洲成在线观看| 欧美成人精品激情在线观看| 亚洲精品视频免费观看| 欧美激情区在线播放| 亚洲午夜精品在线| 韩国av一区二区三区| 欧美乱大交xxxxx| 久久福利电影| 91久久精品一区二区三区|