跳转到主内容
极星编程网:以代码为星,赴技术山海!

PHP上传图片进行等比缩放可增加水印功能_php技巧

啥也不说,直接上代码,大家可以自行添加增加水印功能:PHP 8.5.5 PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。

下载复制代码代码如下:php/**** @author zhao jinhan* @date 2014年1月13日11:54:30* @email xb_zjh@126.com**/ header('Content-type:text/html; charset=utf-8');//定义缩略图的宽高define('THUMB_WIDTH',300);define('THUMB_HEIGHT',300);/*** 重新生成上传的文件名* @return string* @author zhao jinhan**/ function _file_type($filetype = null){switch($filetype){case "image/jpeg":$fileextname = "jpg";break;case "image/gif":$fileextname = "gif";break;case "image/png":$fileextname = "png";break;default:$fileextname = false;break;}return $fileextname?date('YmdHis',time()).'.'.$fileextname:false;}/**** @param string $filename* @param string $width* @param string $height* @param string $quality* @param string $savepath* @return boolean*/ function _make_thumb($filename='', $width=THUMB_WIDTH, $height=THUMB_HEIGHT, $savepath='./upload'){if(file_exists($filename)){//上传图片的尺寸$imagesize=getimagesize($filename);$imagewidth=$imagesize[0];$imageheight=$imagesize[1];$mime = $imagesize['mime'];//宽高比例$ratio = $imagewidth/$imageheight;//新建一个背景图片$bgimg = imagecreatetruecolor($width, $height);$white = imagecolorallocate($bgimg, 255, 255, 255);//填充背景色为白色imagefill($bgimg,0,0,$white);if($mime == 'image/gif'){$im = @imagecreatefromgif($filename); /* Attempt to open */$outfun = 'imagegif';}elseif($mime == 'image/png'){$im = @imagecreatefrompng($filename); /* Attempt to open */$outfun = 'imagepng';}else{$im = @imagecreatefromjpeg($filename); /* Attempt to open */$outfun = 'imagejpeg';}if($ratio > 1){//宽度较大if($imagewidth > $width){//缩放图片到背景图片上$new_width = $width;$new_height = ($width*$imageheight)/$imagewidth;$bg_y = ceil(abs(($height-$new_height)/2));imagecopyresampled($bgimg, $im, 0, $bg_y, 0, 0, $new_width, $new_height, $imagewidth, $imageheight);}else{//复制图片到背景图片上$copy = true;}}else{//高度较大if($imageheight > $height){//缩放图片$new_height = $height;$new_width = ($height*$imagewidth)/$imageheight;$bg_x = ceil(($width-$new_width)/2);imagecopyresampled($bgimg, $im, $bg_x, 0, 0, 0, $new_width, $new_height, $imagewidth, $imageheight);}else{//复制图片到背景图片上$copy = true;}}if($copy){//复制图片到背景图片上$bg_x = ceil(($width-$imagewidth)/2);$bg_y = ceil(($height-$imageheight)/2);imagecopy($bgimg, $im, $bg_x, $bg_y, 0, 0, $imagewidth, $imageheight);}$ext = _file_type($mime);$outfun($bgimg, $savepath.'/'.$ext);imagedestroy($bgimg);return $savepath.'/'.$ext;}else{return false;}}if($_POST){$size = $_POST['size']?strtoupper(trim($_POST['size'])):'2M';$imgsize = $_FILES['img']['size']?$_FILES['img']['size']/(1024*1024):0;$imgwidth = $imgheight = $_POST['width-height']?intval($_POST['width-height']):300;//自定定义文件上传大小ini_set('upload_max_filesize',$size);$mathsize = str_replace('M','',$size);if($imgsize>$mathsize){echo "图片大小不得超过{$size}!";return;}if($file_name = _file_type($_FILES['img']['type'])){if($_FILES['img']['error'] == UPLOAD_ERR_OK){$savepath = 'upload/';if(!is_dir($savepath)){mkdir($savepath,0644);}//生成缩略图$thumb_file = _make_thumb($_FILES['img']['tmp_name'], $imgwidth, $imgheight, $savepath);//move_uploaded_file($_FILES['img']['tmp_name'],$savepath.$file_name);echo "生成后的图片为:";}else{echo $_FILES['img']['error'];return;}}else{echo "图片格式不正确,请上传jpg,gif,png的格式!";return;}}else{echo缩放图片保存成正方形上传一张图片:生成缩略图的宽高(单位px):文件大小上限:EOT;}

相关文章