当前位置:Gxlcms > PHP教程 > PHP上传图片进行等比缩放可增加水印功能_PHP教程

PHP上传图片进行等比缩放可增加水印功能_PHP教程

时间:2021-07-01 10:21:17 帮助过:10人阅读

啥也不说,直接上代码,大家可以自行添加增加水印功能:
代码如下:
  1. <br><!--?php <BR-->/** <br>* <br>* @author zhao jinhan <br>* @date 2014年1月13日11:54:30 <br>* @email xb_zjh@126.com <br>* <br>*/ <br>header('Content-type:text/html; charset=utf-8'); <br>//定义缩略图的宽高 <br>define('THUMB_WIDTH',300); <br>define('THUMB_HEIGHT',300); <br><br>/** <br>* 重新生成上传的文件名 <br>* @return string <br>* @author zhao jinhan <br>* <br>*/ <br>function _file_type($filetype = null){ <br>switch($filetype) <br>{ <br>case "image/jpeg": <br>$fileextname = "jpg"; <br>break; <br>case "image/gif": <br>$fileextname = "gif"; <br>break; <br>case "image/png": <br>$fileextname = "png"; <br>break; <br>default: <br>$fileextname = false; <br>break; <br>} <br>return $fileextname?date('YmdHis',time()).'.'.$fileextname:false; <br>} <br><br>/** <br>* <br>* @param string $filename <br>* @param string $width <br>* @param string $height <br>* @param string $quality <br>* @param string $savepath <br>* @return boolean <br>*/ <br>function _make_thumb($filename='', $width=THUMB_WIDTH, $height=THUMB_HEIGHT, $savepath='./upload'){ <br>if(file_exists($filename)){ <br>//上传图片的尺寸 <br>$imagesize=getimagesize($filename); <br>$imagewidth=$imagesize[0]; <br>$imageheight=$imagesize[1]; <br>$mime = $imagesize['mime']; <br>//宽高比例 <br>$ratio = $imagewidth/$imageheight; <br><br>//新建一个背景图片 <br>$bgimg = imagecreatetruecolor($width, $height); <br>$white = imagecolorallocate($bgimg, 255, 255, 255); <br>//填充背景色为白色 <br>imagefill($bgimg,0,0,$white); <br>if($mime == 'image/gif'){ <br>$im = @imagecreatefromgif($filename); /* Attempt to open */ <br>$outfun = 'imagegif'; <br>}elseif($mime == 'image/png'){ <br>$im = @imagecreatefrompng($filename); /* Attempt to open */ <br>$outfun = 'imagepng'; <br>}else{ <br>$im = @imagecreatefromjpeg($filename); /* Attempt to open */ <br>$outfun = 'imagejpeg'; <br>} <br><br>if($ratio > 1){ <br>//宽度较大 <br>if($imagewidth > $width){ <br>//缩放图片到背景图片上 <br>$new_width = $width; <br>$new_height = ($width*$imageheight)/$imagewidth; <br>$bg_y = ceil(abs(($height-$new_height)/2)); <br>imagecopyresampled($bgimg, $im, 0, $bg_y, 0, 0, $new_width, $new_height, $imagewidth, $imageheight); <br>}else{ <br>//复制图片到背景图片上 <br>$copy = true; <br>} <br>}else{ <br>//高度较大 <br>if($imageheight > $height){ <br>//缩放图片 <br>$new_height = $height; <br>$new_width = ($height*$imagewidth)/$imageheight; <br>$bg_x = ceil(($width-$new_width)/2); <br>imagecopyresampled($bgimg, $im, $bg_x, 0, 0, 0, $new_width, $new_height, $imagewidth, $imageheight); <br>}else{ <br>//复制图片到背景图片上 <br>$copy = true; <br>} <br>} <br>if($copy){ <br>//复制图片到背景图片上 <br>$bg_x = ceil(($width-$imagewidth)/2); <br>$bg_y = ceil(($height-$imageheight)/2); <br>imagecopy($bgimg, $im, $bg_x, $bg_y, 0, 0, $imagewidth, $imageheight); <br>} <br>$ext = _file_type($mime); <br>$outfun($bgimg, $savepath.'/'.$ext); <br>imagedestroy($bgimg); <br>return $savepath.'/'.$ext; <br>}else{ <br>return false; <br>} <br>} <br><br>if($_POST){ <br>$size = $_POST['size']?strtoupper(trim($_POST['size'])):'2M'; <br>$imgsize = $_FILES['img']['size']?$_FILES['img']['size']/(1024*1024):0; <br>$imgwidth = $imgheight = $_POST['width-height']?intval($_POST['width-height']):300; <br>//自定定义文件上传大小 <br>ini_set('upload_max_filesize',$size); <br>$mathsize = str_replace('M','',$size); <br>if($imgsize>$mathsize){ <br>echo "图片大小不得超过{$size}!"; <br>return; <br>} <br>if($file_name = _file_type($_FILES['img']['type'])){ <br>if($_FILES['img']['error'] == UPLOAD_ERR_OK){ <br>$savepath = 'upload/'; <br>if(!is_dir($savepath)){ <br>mkdir($savepath,0644); <br>} <br>//生成缩略图 <br>$thumb_file = _make_thumb($_FILES['img']['tmp_name'], $imgwidth, $imgheight, $savepath); <br>//move_uploaded_file($_FILES['img']['tmp_name'],$savepath.$file_name); <br>echo "生成后的图片为:<img src="https://www.gxlcms.com/".$thumb_file."">"; <br>}else{ <br>echo $_FILES['img']['error']; <br>return; <br>} <br>}else{ <br>echo "图片格式不正确,请上传jpg,gif,png的格式!"; <br>return; <br>} <br><br><br><br>}else{ <br>echo <<<eot <br=""> <br> <br> <br><meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <br><title>缩放图片保存成正方形</title> <br> <br> <br> <br> <br> <br>EOT; <br>} <br>
  2. <p></p>
  3. <p align="left"><span id="url" itemprop="url">http://www.bkjia.com/PHPjc/695103.html</span><span id="indexUrl" itemprop="indexUrl">www.bkjia.com</span><span id="isOriginal" itemprop="isOriginal">true</span><span id="isBasedOnUrl" itemprop="isBasedOnUrl">http://www.bkjia.com/PHPjc/695103.html</span><span id="genre" itemprop="genre">TechArticle</span><span id="description" itemprop="description">啥也不说,直接上代码,大家可以自行添加增加水印功能: 代码如下:</span></p><pre class="brush:php;toolbar:false layui-box layui-code-view layui-code-notepad"><ol class="layui-code-ol"><li>?php /** * * @author zhao jinhan * @date 2014年1月13日11:54:30 * @email...<p></p></li><li> </li></ol></pre></eot>

人气教程排行