图片压缩
时间:2019-08-22
本文章向大家介绍图片压缩,主要包括图片压缩使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
- 将图片压缩成jpg或png
$type = explode('/', $file->type); $mainType = $type[0]; $subType = $type[1]; $isImage = $mainType == 'image'; $isGif = $subType == 'gif';//gif压缩会变静态的,所以过滤掉 if ($isImage) { $maxSize = 1024 * 1024; if (!$isGif) { //图片进行压缩 $file->data = $this->compressImage($file->data, $maxSize); } //生成文件 } function compressImage($data, $maxSize, $percent = 1) { $size = strlen($data); if ($size <= $maxSize) { return $data; } $img = imagecreatefromstring($data); $width = imagesx($img); $height = imagesy($img); $newWidth = $width * $percent; $newHeight = $height * $percent; $newImg = imagecreatetruecolor($newWidth, $newHeight); imagecopyresampled($newImg, $img, 0, 0, 0, 0, floor($newWidth), floor($newHeight), $width, $height); ob_start(); //Turn on output buffering imagepng($newImg); //Generate your image //imagejpeg($newImg); $data = $output = ob_get_contents(); // get the image as a string in a variable ob_end_clean(); //Turn off output buffering and clean it imagedestroy($newImg); $percent -= 0.1; print_r("\npercent={$percent},size={$size}"); return self::compressImage($data, $maxSize,$percent); }
- jpg
- 4.58M:(1)710KB[4]
- 3.78M:(2)267KB[1]
- 1.38M:(3)718KB[1]
- png
- 4.58M:(1)997.29[6]
- 3.78M:(2)982.2KB[4]
- 1.38M:(3)928KB[5]
原文地址:https://www.cnblogs.com/fatRabbit-/p/11393442.html
- (40) 剖析HashMap / 计算机程序的思维逻辑
- nginx配置https(亲测可用)
- linux中无 conio.h的解决办法
- 运用适配器模式应对项目中的变化
- 开车啦!小爬虫抓取今日头条街拍美女图
- C语言中随机数相关问题
- 算法决策兴起:人工智能时代的若干伦理问题及策略|AI观察
- Win10配置人工智能学习平台Tensorflow的正确姿势
- mysql left( right ) join使用on 与where 筛选的差异
- 一条长sql的排错过程
- (41) 剖析HashSet / 计算机程序的思维逻辑
- Python时间运算的详细机制初探讨
- C++编译错误cannot have cv-qualifier
- Python写TCP端口扫描工具之IP协议的讲解
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法