博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
无损压缩图片心得(二)
阅读量:6691 次
发布时间:2019-06-25

本文共 1989 字,大约阅读时间需要 6 分钟。

用户之前在参加的上传图片活动都没有经过无损压缩处理.想用脚本对一月内传上去的图片进行处理,但服务集群上只能使用他们提供的一些简单的API.所以只能先down 下来,压缩处理后,再传上去覆盖原来的图片.

经过多次调试,最终写了个php的脚本对之进行处理:详见.

代码如下:

1:  
2:  function compress_img ($source) {
3:      $exts = array("png","bmp","gif","pnm","tiff");
4:      $start_time = strtotime("-30 day");
5:      exec("s3cmd ls s3://fever38-us-static/hotdeals/{$source}/ > ./tmp.txt");
6:      $rs = file('./tmp.txt');
7:   
8:      foreach($rs as $line) {
9:          $r =  array_filter(explode(' ', $line));
10:          if(!empty($r[0])){
11:              $r[0] = trim($r[0]);
12:              $time = strtotime($r[0]);
13:          }
14:          if(!empty($time) && $time >= $start_time){
15:              if(!empty($r[10])){
16:                  $img = trim($r[10]);
17:                  $path_info = pathinfo($r[10]);
18:                  $ext = trim($path_info["extension"]);
19:                  $file_name = strtolower(trim($path_info["basename"]));
20:   
21:                  exec("s3cmd get ".$img);
22:                  exec("cp {$file_name} /mnt/heisoo/s3/{$source}/");
23:   
24:                  if (in_array($ext,$exts)) {
25:                      system("/usr/bin/optipng -o5 ".$file_name);
26:                  }
27:                  if ($ext == "jpg" || $ext == "jpeg") {
28:                      system("/usr/bin/jpegoptim -o --strip-all ".$file_name);
29:                  }
30:                  system("s3cmd put {$file_name} {$img} --guess-mime-type --add-header 'Cache-Control:max-age=31536000' --add-header 'Expires: Thu, 01 Dec 2014 16:00:00 GMT' --acl-public");
31:                  unlink($file_name);
32:              }
33:          }
34:      }
35:   
36:      unlink('./tmp.txt');
37:  }
38:   
39:  compress_img("promotion_main_pic");
40:  compress_img("src_thumb");
41:  compress_img("uploadImage");
42:  compress_img("dialog_image");
43:  compress_img("joinPicture");
44:  ?>
posted on
2013-08-19 09:55 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/ms_config/p/3267234.html

你可能感兴趣的文章
IOS --React Native
查看>>
Linux CPU
查看>>
Linux/Centos ntp时间同步,联网情况和无网情况配置
查看>>
初级网络运维工程师比赛题目
查看>>
跨交换机实现vlan实验报告
查看>>
jquery easyui滚动条部分设置介绍
查看>>
cannot find -lxxx问题
查看>>
预防云端开源项目打包 Redis Labs再更改模块
查看>>
超惊人!去年发生的身分外泄安全事件是2017的4倍
查看>>
oracle sqlplus免安装的配置instantclient-basiclite
查看>>
Java开发GUI之选择列表
查看>>
一、分布式商城架构逻辑图
查看>>
机器人是如何完成避障的?机器人避障解决方案解读
查看>>
通过错误堆栈信息和源码分析错误来源
查看>>
C和C++ 读写文件速度问题
查看>>
layer.mobile 弹出框插件(2.0版)
查看>>
C#基础 条件语句、选择语句和循环语句
查看>>
bugzilla安装笔记
查看>>
Hadoop 2.0(YARN/HDFS)学习资料汇总
查看>>
hadoop命令执行hbase应用jar包时的环境变量加载问题
查看>>