分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

php 制作略缩图

发布时间:2023-09-06 01:32责任编辑:顾先生关键词:暂无标签

一.需求

  最近公司的项目中有个需求,就是用户上传自己的微信二维码,然后系统会自动将用户的微信二维码合并到产品中

二.分析

  因为该系统是手机端的,所以从用户端的体验出发,用户当然是直接在微信上保存二维码然后上传。这里有个问题就是,

  微信的安卓版本与ios版本保存下来的图片尺寸是不一样的。所以为了更加谨慎的使用二维码,这里需要将上传的二维码

  进行转化为统一的规格。所以需要制作略缩图

三.过程

  我们可以使用php的GD库来处理,定义一个目标尺寸画布,然后将二维码拷贝布满画布,就是代码

  

/*** 制作略缩图方法* @param string $src ?文件路径* @param int $width ?生成略缩图的宽度(只设置高度是则为等比例缩放)* @param int $height ?生成略缩图的高度(只设置宽度是则为等比例缩放)* @param string $filename 生成略缩图图片保存路径*/function makeThumb($src, $width = null, $height = null, $filename){ ???$srcData = getimagesize($src); ???list($srcWidth, $srcHeight, $srcType) = $srcData; ???if (empty($width)) ?????????$width = $srcWidth * ($height / $srcHeight); ?????if (empty($height)) ?????????$height = $srcHeight * ($width / $srcWidth); ?????switch ($srcType) { ???????case ‘1‘: ???????????$imgType = ‘gif‘; ???????????break; ???????case ‘2‘: ???????????$imgType = ‘jpeg‘; ???????????break; ???????case ‘3‘: ???????????$imgType = ‘png‘; ???????????break; ???} ??????$imageCreateFun = ‘imagecreatefrom‘.$imgType; ??????$srcImg = $imageCreateFun($src); ??????$destImg = imagecreatetruecolor(intval($width),intval($height));//创建目标尺寸的画布 ??????imagecopyresampled($destImg, $srcImg,0,0,0,0,$width,$height,$srcWidth,$srcHeight);//将拷贝出二维码并铺满在画布中 ??????$imagefunc = ‘image‘.$imgType; ??????// header("content-type:image/jpeg;") ??????// imagejpeg($destImg); ??????$imagefunc($destImg,$filename.‘.‘.$imgType); ??????return $filename.‘.‘.$imgType;}$codePath = ‘‘;$codeImageType = ‘‘;if ((($_FILES["file"]["type"] == "image/jpeg")||($_FILES["file"]["type"] == "image/jpg")||($_FILES["file"]["type"] == "image/png"))&& ($_FILES["file"]["size"] < 2097152)){ ???if($_FILES["file"]["error"] > 0) ???{ ???????echo "发生错误" . $_FILES["file"]["error"] . ",请找TzSteady<br />"; ???????exit; ???}else ???{ ???????move_uploaded_file($_FILES["file"]["tmp_name"],"./code/" . date("Ymd").$_FILES["file"]["name"]); ???????$codePath = "./code/" . date("Ymd").$_FILES["file"]["name"]; ???????$codePath = makeThumb($codePath,300,false,‘./code/‘.date("YmdHis")); ???????$codeImageType = $_FILES["file"]["type"]; ???}}else{ ???echo "<script> ???alert(‘请上传小于2M的jpg/png/jpeg格式的二维码‘); ???</script>"; ???exit;}


php 制作略缩图

原文地址:https://www.cnblogs.com/TzSteady/p/8133988.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved