PHP 使用gd库压缩图片并生成新图片返回全路径
使用gd库前,先检查是否开启了gd库
phpinfo();
如果在php配置信息里找到了gd库,那么就是开启了,没开启的自行百度如何开启php gd库

既然开启了gd库,那么直接再php里写入以下代码即可
//获取图片信息
$filename = './11.jpg';
$info = getimagesize($filename); //获取图片的后缀
$type = image_type_to_extension($info[2], false);
//拼接图片资源句柄函数
$func = 'imagecreatefrom'.$type;
//创建图片资源句柄
$image = $func($filename); //生成缩略图,宽高都缩小1/2
//1、在内存中创建画板 宽 高
$image_thumb = imagecreatetruecolor($info[1]/4, $info[1]/2);
//2、将原图复制到新建的画板上,并按照一定比例压缩
imagecopyresampled($image_thumb, $image, 0, 0,0,0,
$info[1]/4,$info[1]/2,$info[0],$info[0]); //销毁缓存的图片,释放内存
imagedestroy($image); //图片输出函数拼接
$outFunc = 'image'.$type; //设置文件路径
$ml = date('Ymd', time());//目录名称
$url = $ml.'/'.time().'.png';//存储的路径 //判断目录是否存在
if (file_exists($ml) == false){
//创建目录,并且设置最高权限
if (mkdir($ml, 0700, true)){
echo '创建目录成功';
}else{
echo '创建目录失败';
}
} //判断是http还是https
$http_type = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')) ? 'https://' : 'http://';
//全路径
$urls = $http_type . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] . $url; //生成图片
if ($outFunc($image_thumb,$url)){
var_dump('压缩图片成功,图片路径为:'.$urls);
}else{
var_dump('压缩图片失败');
}
PHP 使用gd库压缩图片并生成新图片返回全路径的更多相关文章
- IOS 截取图片 部分 并生成新图片
/** * 从图片中按指定的位置大小截取图片的一部分 * * @param image UIImage image 原始的图片 * @param rect CGRect rect 要截取的区域 * * ...
- [图片生成]使用VAEs生成新图片
变分自动编码器生成图片 从隐图像空间进行采样以创建全新的图像或编辑现有图像是目前创作AI最受欢迎和最成功的应用方式. 图像隐空间取样 图像生成的关键思想是开发表示的低维潜在空间(自然是矢量空间),其中 ...
- php 使用GD库压缩图片,添加文字图片水印
先上一个工具类,提供了压缩,添加文字.图片水印等方法: image.class.php <?php class Image { private $info; private $image; pu ...
- C#图片裁切,生成新图片
/// 图片裁剪,生成新图,保存在同一目录下,名字加_new,格式1.png 新图1_new.png /// </summary> /// <param name="pic ...
- PHP 用session与gd库实现简单验证码生成与验证的类
验证码是为了防止机器灌水给网站带来污染以及增加服务器负担而出现的.目前大大小小的网站都有验证码.今天自己实现了一个简单的验证码类.说简单是因为没有加一些干扰的弧线等等,只是将文字旋转了一下.当然,因为 ...
- PHP GD库---之商详合成分享图片
$item_pic = 'img/item.jpg'; $qcode_pic = 'img/qcode.png'; $user_pic = 'img/user.jpeg'; $item_title = ...
- iOS开发——多线程篇——NSOperation(基于GCD多线程编程),下载图片并合成新图片
一.NSOperation的基本概念1.简介NSOperation的作用配合使用NSOperation和NSOperationQueue也能实现多线程编程 NSOperation和NSOperatio ...
- PHP面向对象——GD库实现图片水印和缩略图
今天的实现目标就是使用GD库完成对图片加水印和图 片缩略图两个功能 动身前逻辑准备 属性: 路径 功能: 构造方法 生成水印的方法 获取 图片信息 获取位置信息(123 456 789) 创建图片资源 ...
- PHP5 GD库生成图形验证码(汉字)
PHP5 GD库生成图形验证码且带有汉字的实例分享. 1,利用GD库函数生成图片,并在图片上写指定字符imagecreatetruecolor 新建一个真彩色图像imagecolorallocate ...
随机推荐
- 【应用服务 App Service】在Azure App Service中使用WebSocket - PHP的问题 - 如何使用和调用
问题描述 在Azure App Service中,有对.Net,Java的WebSocket支持的示例代码,但是没有成功的PHP代码. 以下的步骤则是如何基于Azure App Service实现PH ...
- PowerShell查看历史记录
PowerShell的所有历史记录: Get-Content (Get-PSReadLineOption).HistorySavePath 顺手写了一个掉用的函数: function Get ...
- DRF (学习第一部)
目录 Web应用模式 API接口 RESTful API 规范 序列化 Django Rest_Framework 环境安装预与配置 序列化器 -Serializer Web应用模式 在开发web应用 ...
- BeanUtil的使用
融合相同属性的对象 FaultItemDto item = new FaultItemDto(); BeanUtil.copyNotNullProperties(item, detail);
- VM Linux (Centos)联网
今天新建一个linux突然发现不能上网,然后百度好多都不行,最后还是解决掉了,这是我的配置方法 鼠标左击虚拟机(或者选中之后直接设置),找到设置选项,打开网络适配器,设为NAT模式 然后进入虚拟机,进 ...
- django 框架模型之models常用的Field
1. django 模型models 常用字段 1.models.AutoField 自增列 = int(11) 如果没有的话,默认会生成一个名称为 id 的列 如果要显式的自定义一 ...
- Python列表lists索引关于字符串小纪
看的出'字符串列表'中的空格也是计算在内的
- 835. Image Overlap —— weekly contest 84
Image Overlap Two images A and B are given, represented as binary, square matrices of the same size. ...
- 快进来!花几分钟看一下 ReentrantReadWriteLock 的原理!
前言 在看完 ReentrantLock 之后,在高并发场景下 ReentrantLock 已经足够使用,但是因为 ReentrantLock 是独占锁,同时只有一个线程可以获取该锁,而很多应用场景都 ...
- 第4章 Function语意学
第4章 Function语意学 目录 第4章 Function语意学 4.1 Member的各种调用方式 Nonstatic Member Function(非静态成员函数) virtual Memb ...