php 制作略缩图

一.需求

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

二.分析

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

  微信的安卓版本与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;
}

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

时间: 2024-10-12 23:11:12

php 制作略缩图的相关文章

略缩图

<!DOCTYPE html> <html lang=""> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, i

多任务卡片式略缩图管理界面联想

多任务卡片式略缩图管理界面 的感想 想到应用退出到后台后展示的图片可能会牵涉隐私,所以我们做开发的人员是否可以考虑在快退出后台的时候做出相应的处理.(目前我暂未尝试) 举例:比如你拍照,拍完后发现特别不想让别人看见,于是就把图片删了.结果如果你没有退出程序,别人还可以通过多任务卡片式略缩图管理界面(也就是iPhone的双机home建android的..不知道咋描述) 类似的东西比如短信,在锁屏的情况下,可以在屏幕电池栏查看短信一次.不太安全不 生活中有很多可以观察得东西 版权声明:本文为博主原创

C#实现略缩图

public class GenerateThumbnail { private Image imageFrom; /// <summary> /// 源图的路径(含文件名及扩展名 /// </summary> /// <param name="pathImageFrom">源图的路径(含文件名及扩展名</param> public GenerateThumbnail(string pathImageFrom) { imageFrom =

PHP画图之GD库的使用——略缩图(二)

1 <?php 2 // 将图像等比放大或缩小 3 class resize{ 4 5 private $src; 6 private $image; 7 private $width; 8 private $height; 9 private $imageType; 10 private $imageResize; 11 private $newWidth; 12 private $newHeight; 13 14 // 文件路径名,期待文件的宽度 15 public function __c

Android 获取图片或视频略缩图

/** * 根据指定的图像路径和大小来获取缩略图 此方法有两点好处: 1. * 使用较小的内存空间,第一次获取的bitmap实际上为null,只是为了读取宽度和高度, * 第二次读取的bitmap是根据比例压缩过的图像,第三次读取的bitmap是所要的缩略图. 2. * 缩略图对于原图像来讲没有拉伸,这里使用了2.2版本的新工具ThumbnailUtils,使 用这个工具生成的图像不会被拉伸. * * @param imagePath * 图像的路径 * @param width * 指定输出图

js 上传头像+略缩图

<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title></title></head><body><script language="javascript" type="text/javascript"> var allowExt = ['j

android 获取 图片或视频略缩图

/** * 根据指定的图像路径和大小来获取缩略图 此方法有两点好处: 1. * 使用较小的内存空间,第一次获取的bitmap实际上为null,只是为了读取宽度和高度, * 第二次读取的bitmap是根据比例压缩过的图像,第三次读取的bitmap是所要的缩略图. 2. * 缩略图对于原图像来讲没有拉伸,这里使用了2.2版本的新工具ThumbnailUtils,使 用这个工具生成的图像不会被拉伸. * * @param imagePath * 图像的路径 * @param width * 指定输出图

怎么制作GIF动图,制作GIF动图攻略

网络聊天中,使用GIF动图已经成为一种常态.很多人都习惯了使用GIF动图来表达自己的心情,那么你们有想过你们手中的GIF动图是怎么制作的吗?我想肯定都是想过的.其实制作GIF并不困难,有款迅捷GIF制作工具请添加链接描述便能够轻松驾驭了.下面小编就来分享下制作GIF动图的方法,教大家如何制作GIF动图. 迅捷GIF制作工具http://www.xunjieshipin.com/download-gifmaker 一.现在很流行将电视剧或者综艺.动漫等等视频上面的某一搞笑的画面截取下来制作成动态表

【高德地图API】如何获得行政区域?如何制作行政规划图?

什么是行政规划图?如何获得每个行政区域的边界轮廓图?举例:重庆市 江北区.如图: 官方类参考:http://developer.amap.com/javascript/reference/search#Partition 行政规划代码: function byDistrict(){          var partition = new AMap.Partition();  //创建一个新的行政规划类        partition.byDistrict(district,city,byDi