天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

PHP 處理圖片的類實現代碼

復制代碼 代碼如下:
<?php
/**
* author:yagas
* email:yagas60@21cn.com
*/
class Image
{
/** 類保護變量 */
protected $th_width = 100;
protected $th_height = 50;
protected $quality = 85; //圖片質量
protected $transparent = 50; //水印透明度
protected $background = "255,255,255"; //背景顏色
/**
* 生成縮略圖文件
* @param $src 原圖文件
* @param $dst 目標文件
*/
public function thumb($src, $dst=null, $output=true)
{
$thumb = array($this->th_width, $this->th_height);
$this->scale($src, $thumb, $dst, $output);
}
/**
* 對圖片按百分比進行縮放處理
* @param string $src 原圖文件
* @param string $dst 輸入的目標文件
* @param float/array $zoom 縮放比例,浮點類型時按百分比綻放,數組類型時按指定大小時行縮放
* @param boolean $output 是否生成文件輸出
*/
public function scale($src, $dst=null, $zoom=1, $output=true)
{
if(!file_exists($src)) die('File not exists.');
if(!$zoom) die('the zoom undefine.');
$src_im = $this->IM($src);
$old_width = imagesx($src_im);
if(is_float($zoom)) {
//按百分比進行縮放
$new_width = $old_width * $zoom;
}
elseif(is_array($zoom)) {
//明確的縮放尺寸
$new_width = $zoom[0];
}
//是否定義的縮放的高度
if(!isset($zoom[1])) {
//等比例縮放
$resize_im = $this->imageresize($src_im, $new_width);
}
else {
//非等比例縮放
$resize_im = $this->imageresize($src_im, $new_width, $zoom[1]);
}
if(!$output) {
header("Content-type: image/jpeg");
imagejpeg($resize_im, null, $this->quality);
}
else {
$new_file = empty($dst)? $src:$dst;
imagejpeg($resize_im, $new_file, $this->quality);
}
imagedestroy($im);
imagedestroy($nIm);
}
/**
* 對圖片進行裁切
* @param $src 原始文件
* @param $dst 目標文件
* @param $output 是否生成目標文件
*/
public function capture($src, $dst=null, $output=true) {
if(!file_exists($src)) die('File not exists.');
$width = $this->th_width;
$height = $this->th_height;
$src_im = $this->IM($src);
$old_width = imagesx($src_im);
$old_height = imagesy($src_im);
$capture = imagecreatetruecolor($width, $height);
$rgb = explode(",", $this->background);
$white = imagecolorallocate($capture, $rgb[0], $rgb[1], $rgb[2]);
imagefill($capture, 0, 0, $white);
//當圖片大于縮略圖時進行縮放
if($old_width > $width && $old_height>$height) {
$resize_im = $this->imageresize($src_im, $width);
//圖片比例不合規范時,重新計算比例進行裁切
if(imagesy($resize_im) < $height) {
$proportion = $old_height/$this->th_height;
$resize_im = $this->imageresize($src_im, $old_width/$proportion);
}
$posx = 0;
$posy = 0;
}
else {
//圖片小于縮略圖時將圖片居中顯示
$posx = ($width-$old_width)/2;
$posy = ($height-$old_height)/2;
$resize_im = $src_im;
}
imagecopy($capture, $resize_im, $posx, $posy, 0, 0, imagesx($resize_im), imagesy($resize_im));
if(!$output) {
header("Content-type: image/jpeg");
imagejpeg($capture, null, $this->quality);
}
else {
$new_file = empty($dst)? $src:$dst;
imagejpeg($capture, $new_file, $this->quality);
}
imagedestroy($src_im);
@imagedestroy($resize_im);
imagedestroy($capture);
}
/**
* 寫入水印圖片
* @param $src 需要寫入水印的圖片
* @param $mark 水印圖片
* @param $transparent 水印透明度
*/
public function mark($src, $mark, $dst='', $output=true)
{
$mark_info = getimagesize($mark);
$src_info = getimagesize($src);
list($mw,$mh) = $mark_info;
list($sw,$sh) = $src_info;
$px = $sw - $mw;
$py = $sh - $mh;
$im = $this->IM($src);
$mim = $this->IM($mark);
imagecopymerge($im, $mim, $px, $py, 0, 0, $mw, $mh, $this->transparent);
if($output){
$new_file = empty($dst)? $src:$dst;
imagejpeg($im, $new_file, $this->quality);
}
else
{
header('Content-type: image/jpeg');
imagejpeg($im);
}
imagedestroy($im);
imagedestroy($mim);
}
/**
* 通過文件,獲取不同的GD對象
*/
protected function IM($file)
{
if(!file_exists($file)) die('File not exists.');
$info = getimagesize($file);
switch($info['mime'])
{
case 'image/gif':
$mim = imagecreatefromgif($file);
break;
case 'image/png':
$mim = imagecreatefrompng($file);
imagealphablending($mim, false);
imagesavealpha($mim, true);
break;
case 'image/jpeg':
$mim = imagecreatefromjpeg($file);
break;
default:
die('File format errors.');
}
return $mim;
}
/**
* 對圖片進行縮放的處理
* @param resource $src_im 圖像GD對象
* @param integer $width 圖片的寬度
* @param integer $height 圖片的高度,如果不設置高度,將對圖片進行等比例縮放
* @return resuorce $im 返回一個GD對象
*/
protected function imageresize($src_im, $width, $height=null) {
$old_width = imagesx($src_im);
$old_height = imagesy($src_im);
$proportion = $old_width/$old_height;
$new_width = $width;
$new_height = is_null($height)? round($new_width / $proportion):$height;
//創建新的圖象并填充默認的背景色
$im = imagecreatetruecolor($new_width, $new_height);
$rgb = explode(",", $this->background);
$white = imagecolorallocate($im, $rgb[0], $rgb[1], $rgb[2]);
imagefill($im, 0, 0, $white);
//對圖片進行縮放
imagecopyresized($im, $src_im, 0, 0, 0, 0, $new_width, $new_height, $old_width, $old_height);
return $im;
}
/**
* 類變量賦值
*/
public function __set($key, $value)
{
$this->$key = $value;
}
/**
* 獲取類變量值
*/
public function __get($key)
{
return $this->$key;
}
}
?>

php技術PHP 處理圖片的類實現代碼,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产麻豆精品传媒AV国产在线 | 不良网站进入窗口软件下载免费 | fyeex性欧美人与曾 | 在教室伦流澡到高潮HNP视频 | 69国产精品成人无码视频 | 被六个男人躁到一夜同性 | 久久机热视频 这里只有精品首页 | 99国产在线精品观看二区 | 婬香婬色天天视频 | 果冻传媒2021精品影视 | 最近2019中文字幕免费 | 激情综合色 | 久久毛片免费看一区二区三区 | 和老外3p爽粗大免费视频 | 柏木舞子在线 | 全彩acg无翼乌火影忍者 | 色人阁久久| 伊人久久综在合线亚洲 | 饥渴的40岁熟妇完整版在线 | 蜜芽丅v新网站在线观看 | 趁老师睡着吃她的奶水 | 无码乱人伦一区二区亚洲 | 久久久久久天天夜夜天天 | 亚洲精品中文字幕在线 | 野花社区WWW韩国日本 | 国产免费午夜 | 亚洲欧洲精品成人久久曰影片 | 无人区大片中文字幕在线 | 91精品免费久久久久久久久 | 成年色黄APP下载 | 青青青青久久久久国产的 | 亚洲 无码 在线 专区 | asian4you裸模| 黄瓜视频苹果直接安装 | 扒开老师大腿猛进AAA片软件 | 久久99视热频国只有精品 | 欧美精品XXXXBBBB| 亚洲精品在线网址 | 受被攻做到腿发颤高h文 | 中文字幕在线观看国产 | 天堂无码人妻精品AV一区 |