PHP实现压缩图片尺寸并转为jpg格式的方法示例


Posted in PHP onMay 10, 2018

本文实例讲述了PHP实现压缩图片尺寸并转为jpg格式的方法。分享给大家供大家参考,具体如下:

<?php
function ImageToJPG($srcFile,$dstFile,$towidth,$toheight)
{
  $quality=80;
  $data = @GetImageSize($srcFile);
  switch ($data['2'])
  {
  case 1:
    $im = imagecreatefromgif($srcFile);
    break;
  case 2:
    $im = imagecreatefromjpeg($srcFile);
    break;
  case 3:
    $im = imagecreatefrompng($srcFile);
    break;
  case 6:
  $im = ImageCreateFromBMP( $srcFile );
  break;
  }
  // $dstX=$srcW=@ImageSX($im);
  // $dstY=$srcH=@ImageSY($im);
  $srcW=@ImageSX($im);
  $srcH=@ImageSY($im);
  //$towidth,$toheight
  if($toheight/$srcW > $towidth/$srcH){
    $b = $toheight/$srcH;
  }else{
    $b = $towidth/$srcW;
  }
  //计算出图片缩放后的宽高
  // floor 舍去小数点部分,取整
  $new_w = floor($srcW*$b);
  $new_h = floor($srcH*$b);
  $dstX=$new_w;
  $dstY=$new_h;
  $ni=@imageCreateTrueColor($dstX,$dstY);
  @ImageCopyResampled($ni,$im,0,0,0,0,$dstX,$dstY,$srcW,$srcH);
  @ImageJpeg($ni,$dstFile,$quality);
  @imagedestroy($im);
  @imagedestroy($ni);
}
//ImageToJPG('源文件名','目标文件名',目标宽,目标高);
ImageToJPG('test2.png','test2.jpg',80,50);

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
针对初学PHP者的疑难问答(1)
Oct 09 PHP
PHP三元运算符的结合性介绍
Jan 10 PHP
PHP中isset()和unset()函数的用法小结
Mar 11 PHP
php动态生成函数示例
Mar 21 PHP
将二维数组转为一维数组的2种方法
May 26 PHP
php视频拍照上传头像功能实现代码分享
Oct 08 PHP
PHP 使用 Imagick 裁切/生成缩略图/添加水印自动检测和处理 GIF
Feb 19 PHP
PHP调试的强悍利器之PHPDBG
Feb 22 PHP
PHP单例模式应用示例【多次连接数据库只实例化一次】
Dec 18 PHP
浅谈Laravel中的三种中间件的作用
Oct 13 PHP
laravel开发环境homestead搭建过程详解
Jul 03 PHP
PHP 8新特性简介
Aug 18 PHP
PHP使用PDO抽象层获取查询结果的方法示例
May 10 #PHP
PHP分页显示的方法分析【附PHP通用分页类】
May 10 #PHP
ThinkPHP防止重复提交表单的方法实例分析
May 10 #PHP
PHP实现用户登录的案例代码
May 10 #PHP
yii2多图上传组件的使用教程
May 10 #PHP
PHP数组去重的更快实现方式分析
May 09 #PHP
PHP+MySQL实现消息队列的方法分析
May 09 #PHP
You might like
用PHP创建PDF中文文档
2006/10/09 PHP
深入PHP中慎用双等于(==)的详解
2013/06/06 PHP
php生成0~1随机小数的方法(必看)
2017/04/05 PHP
PHP中常用的魔术方法
2017/04/28 PHP
PHP实现的CURL非阻塞调用类
2018/07/26 PHP
php生成二维码不保存服务器还有下载功能的实现代码
2018/08/09 PHP
JavaScript While 循环基础教程
2007/04/05 Javascript
谷歌浏览器 insertCell与appendChild的区别
2009/02/12 Javascript
JS 日期验证正则附asp日期格式化函数
2009/09/11 Javascript
JS远程获取网页源代码实例
2013/09/05 Javascript
javascript清空table表格的方法
2015/05/14 Javascript
js将table的每个td的内容自动赋值给其title属性的方法
2016/10/13 Javascript
详解js中Number()、parseInt()和parseFloat()的区别
2016/12/20 Javascript
layer弹出层中H5播放器全屏出错的解决方法
2017/02/21 Javascript
vue元素实现动画过渡效果
2017/07/01 Javascript
Three.js加载外部模型的教程详解
2017/11/10 Javascript
JavaScript引用类型之基本包装类型实例分析【Boolean、Number和String】
2018/08/09 Javascript
Vue发布项目实例讲解
2019/07/17 Javascript
对layer弹出框中icon数字参数的说明介绍
2019/09/04 Javascript
移动端JS实现拖拽两种方法解析
2020/10/12 Javascript
jquery插件实现轮播图效果
2020/10/19 jQuery
[03:08]TI9战队档案 - Vici Gaming
2019/08/20 DOTA
详谈Pandas中iloc和loc以及ix的区别
2018/06/08 Python
Python 创建新文件时避免覆盖已有的同名文件的解决方法
2018/11/16 Python
PyQt5的PyQtGraph实践系列3之实时数据更新绘制图形
2019/05/13 Python
Python 一键制作微信好友图片墙的方法
2019/05/16 Python
python Django里CSRF 对应策略详解
2019/08/05 Python
Pytorch中index_select() 函数的实现理解
2019/11/19 Python
python爬取股票最新数据并用excel绘制树状图的示例
2021/03/01 Python
HTML5的Geolocation地理位置定位API使用教程
2016/05/12 HTML / CSS
DELPHI面试题研发笔试试卷
2015/11/08 面试题
驾驶员安全责任书
2014/07/22 职场文书
单位实习鉴定评语
2015/01/04 职场文书
网聊搭讪开场白
2015/05/28 职场文书
2019年个人工作总结范文
2019/03/25 职场文书
Windows server 2012搭建FTP服务器
2022/04/29 Servers