用途:

1. 图片压缩,2:通过 extif 插件修复图片旋转(需要php安装extif插件)

<?php
ini_set("memory_limit","2680M");
$hostdir=dirname(__FILE__).'/uploads'; //要读取的文件夹
$filesnames = scanFile($hostdir);
$t1 = 0;
foreach ($filesnames as $name) {if(file_exists($name)){$i1 = filesize($name);if($i1 > 500*1024){$t1++;echo $name.',size:'.getsize($i1, 'mb').'.mb,'.$i1.'<br>';compress_image($name);}}
}
echo $t1;
exit;
$hostdir=dirname(__FILE__).'/Application/'; //要读取的文件夹
$filesnames = scanFile2($hostdir);
$t2 = 0;
foreach ($filesnames as $name) {if(file_exists($name)){$t2 = $t2+1;}
}
if($t2 != 225) {echo '文件数错误 :'.$t2;
}
exit;function scanFile2($path) {global $result2;$files = scandir($path);foreach ($files as $file) {if ($file != '.' && $file != '..') {if (is_dir($path . '/' . $file)) {scanFile2($path . '/' . $file);} else {$result2[] = $path . '/' . $file;}}}return $result2;
}function scanFile($path) {global $result;$files = scandir($path);foreach ($files as $file) {if ($file != '.' && $file != '..') {if (is_dir($path . '/' . $file)) {scanFile($path . '/' . $file);} else {$result[] = $path . '/' . $file;}}}return $result;
}
function getsize($size, $format = 'kb') {$p = 0;if ($format == 'kb') {$p = 1;} elseif ($format == 'mb') {$p = 2;} elseif ($format == 'gb') {$p = 3;}$size /= pow(1024, $p);return number_format($size, 3);
}/**
* desription 进行图片压缩
* @param sting $imgsrc
* @return boolean t 是 f 否
*/
function compress_image($imgsrc)
{if(file_exists($imgsrc)){$i1 = filesize($imgsrc);if($i1 > 500*1024){compress_image2($imgsrc,$imgsrc);}}
}
function compress_image2($imgsrc, $imgdst)
{$image_rate= 70;list($width, $height, $type) = getimagesize($imgsrc);$new_width = ($width > 1000 ? 1000 : $width) * 0.8;$new_height = ($width > 1000 ? 1000 * $height / $width : $height) * 0.8;switch ($type) {case 1:$giftype = check_gifcartoon($imgsrc);if ($giftype) {// header('Content-Type:image/gif');$image_wp = imagecreatetruecolor($new_width, $new_height);$image = imagecreatefromgif($imgsrc);imagecopyresampled($image_wp, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);imagejpeg($image_wp, $imgdst, $image_rate);imagedestroy($image_wp);}break;case 2://   header('Content-Type:image/jpeg');$image_wp = imagecreatetruecolor($new_width, $new_height);$image = imagecreatefromjpeg($imgsrc);imagecopyresampled($image_wp, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);if (file_exists($imgdst)) {unlink($imgdst);}if(function_exists(exif_read_data)){$exif = exif_read_data($imgsrc);if (!empty($exif['Orientation'])) {switch ($exif['Orientation']) {case 8:$image_wp = imagerotate($image_wp, 90, 0);break;case 3:$image_wp = imagerotate($image_wp, 180, 0);break;case 6:$image_wp = imagerotate($image_wp, -90, 0);break;}}}imagejpeg($image_wp, $imgdst, $image_rate);imagedestroy($image_wp);break;case 3://   header('Content-Type:image/png');$image_wp = imagecreatetruecolor($new_width, $new_height);$image = imagecreatefrompng($imgsrc);imagecopyresampled($image_wp, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);imagejpeg($image_wp, $imgdst, $image_rate);imagedestroy($image_wp);break;}
}
/**
* desription 判断是否gif动画
* @param sting $image_file图片路径
* @return boolean t 是 f 否
*/
function check_gifcartoon($image_file){ $fp = fopen($image_file,'rb'); $image_head = fread($fp,1024); fclose($fp); return preg_match("/".chr(0x21).chr(0xff).chr(0x0b).'NETSCAPE2.0'."/",$image_head)?false:true;
} ?>

php 图片压缩并实现苹果图片旋转修复相关推荐

  1. DPG图片压缩技术和webp图片格式

    DPG图片压缩技术和webp图片格式 一.DPG图片压缩技术 京东自主研发推出的DPG图片压缩技术,经测试该技术,可以直接节省用户近50%的浏览量,极大地提升了用户的网页打开的速度.能够兼容JPEG, ...

  2. java-png图片压缩,解决png图片压缩后背景变黑问题

    java-png图片压缩,解决png图片压缩后背景变黑问题 参考文章: (1)java-png图片压缩,解决png图片压缩后背景变黑问题 (2)https://www.cnblogs.com/yinj ...

  3. 如何快速图片压缩指定大小?图片压缩到200k以内的方法

    图片压缩到200k以内的介绍 在现代社交媒体和网页设计中,高质量的图片是必不可少的.但是,大型图像文件可能会导致页面加载时间过长,从而影响用户体验.这时就需要使用图片压缩技术来将图片文件大小减小到合理 ...

  4. java 图片压缩加水印_java图片添加水印和压缩

    图片添加水印和压缩 [Java]代码 package net.leebao.core.util; import java.awt.AlphaComposite; import java.awt.Col ...

  5. 【PC工具】图片压缩哪家强!tinyPNG图片压缩工具

    不算云服务软件,可能大家最喜欢的应该就是在线(网页)软件了,网页软件功能强大,使用方便,打开浏览器就能用,可以免去软件安装的耗时,也能避免硬盘空间的占用.今天给大家分享一个在线的图片压缩网站:http ...

  6. java 图片压缩100k_如何将图片压缩到100K以内,教你几种免费方法

    一般我们在提交电子证件照时都要求100K以内的图片,超过则无法正常上传,那么有没有免费将图片压缩变小的方法呢?教你3个简单又免费的方法,收藏起来备用吧. 方法1:最简单粗暴的方式就是直接打开图片后用聊 ...

  7. vue图片压缩不失真_图片压缩会失真?快试试这几个无损压缩神器。

    前端通常在做网页的时候 会出现图片加载慢的情况 在这里我通常会将图片进行压缩 但是通常情况下 观众会认为 图片压缩会出现失真的现象 在这里我会向大家推荐几款图片压缩的工具 基本上会实现无损压缩 1.T ...

  8. 图片压缩软件_简单易用的图片压缩软件gt;给图片减肥

    正文共816字,预计阅读时间为:3分钟 无论你是设计师 自媒体.办公编辑人员 还是学生 很多时候都会遇到 图片文件体积太大 导致无法上传 或传输太过耗时耗流量的问题 这时我们就需要 一款免费图片压缩工 ...

  9. python实现图片压缩_python如何实现图片压缩

    本工具是通过将图片上传到第三方网站tinypng,进行压缩后下载,覆盖本地图片,tinypng是一个强大的图片处理网站,目前最可靠的无损压缩网站. 代码如下: import requests from ...

最新文章

  1. 【Python学习系列二十一】pandas库基本操作
  2. SVN学习总结(1)——SVN简介及入门使用
  3. linux驱动中地址空间转换
  4. .NET Core多平台项目模板eShopOnContainers编译手记
  5. mac pip安装mysql_Mac pip安装mysql-python失败
  6. sql modify 会丢失数据么_为什么U盘的数据会丢失?找对方法,轻松应对
  7. loadrunner 运行脚本-Run-time Settings之Preferences设置
  8. MD(d)、MT(d)编译选项的区别
  9. ASP.NET CORE中使用SESSION
  10. ppt生成eps文件_eps是什么格式怎么打开?全面解析图片的eps是什么格式
  11. 各省简称 拼音 缩写_全国所有城市拼音跟缩写.docx
  12. python热狗大战
  13. ntfs格式的移动硬盘如何在mac电脑写入?
  14. phpnow mysql_PHPNOW中如何建立MYSQL数据库连接?
  15. 工业软件国产化路在何方?INTEWELL助力民族工业落地生“根”
  16. 数据藏在json文件中,如何爬取---以王者荣耀官网为例
  17. 腾讯视频自动签到详细版(多种方式得V值)
  18. 在HTML中将垂直转换为平行,大物实验答案解析.doc
  19. 机房收费系统之日、周账单
  20. 通用接口平台开源版正式发布2.0版本

热门文章

  1. ERP进销存软件系统 电脑端 手机端 小程序通用 (教程)
  2. 苹果充电器USB端的识别电阻的设置
  3. mysql异地备份xtrabackup_xtrabackup备份(MySQL备份)与恢复
  4. lucene中Field简析
  5. JVM核心知识体系(转http://www.cnblogs.com/wxdlut/p/10670871.html)
  6. Spring Boot 必须先说说 Spring 框架!
  7. linux命令编写四位数密码本,详解Linux Shell 实现一个获取任意位数的随机密码的脚本...
  8. JAVA毕业设计web实验室课表管理系统计算机源码+lw文档+系统+调试部署+数据库
  9. COJ1972-大梵天的恩赐
  10. 51单片机按键控制数码管0~9_对于常用的数码管,你有多熟悉?