|
|
|
<?php
|
|
|
|
error_reporting(E_ALL^E_NOTICE^E_WARNING^E_DEPRECATED);
|
|
|
|
/*
|
|
|
|
图像处理类
|
|
|
|
*/
|
|
|
|
include_once("../../config.php");
|
|
|
|
//载入TinyPNG
|
|
|
|
require_once(APP."functions/tinypng/Tinify/Exception.php");
|
|
|
|
require_once(APP."functions/tinypng/Tinify/ResultMeta.php");
|
|
|
|
require_once(APP."functions/tinypng/Tinify/Result.php");
|
|
|
|
require_once(APP."functions/tinypng/Tinify/Source.php");
|
|
|
|
require_once(APP."functions/tinypng/Tinify/Client.php");
|
|
|
|
require_once(APP."functions/tinypng/Tinify.php");
|
|
|
|
|
|
|
|
//初始化值
|
|
|
|
$dispose['compress'] = 0;
|
|
|
|
$dispose['level'] = 0;
|
|
|
|
|
|
|
|
//获取ID
|
|
|
|
$id = $_GET['id'];
|
|
|
|
$id = (int)$id;
|
|
|
|
//获取tinypng key
|
|
|
|
$tinykey = array_rand($tinypng['key']); //取出数组键值
|
|
|
|
$tinykey = $tinypng['key'][$tinykey];
|
|
|
|
$iscompress = 0;
|
|
|
|
|
|
|
|
//如果ID不存在或为空
|
|
|
|
if((!isset($id)) || ($id == '')) {
|
|
|
|
echo 'ID错误!';
|
|
|
|
exit;
|
|
|
|
}
|
|
|
|
|
|
|
|
//如果没有启用压缩
|
|
|
|
if($tinypng['option'] != true){
|
|
|
|
echo '未启用压缩功能!';
|
|
|
|
exit;
|
|
|
|
}
|
|
|
|
|
|
|
|
//查询对应信息
|
|
|
|
$info = $database->get("imginfo",[
|
|
|
|
"id",
|
|
|
|
"path",
|
|
|
|
"compress",
|
|
|
|
"level"
|
|
|
|
],[
|
|
|
|
"id" => $id
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//组合为完整的URL地址
|
|
|
|
$imgurl = $config['domain'].$info['path'];
|
|
|
|
//获取压缩状态
|
|
|
|
$compress = $info['compress'];
|
|
|
|
//获取图片等级
|
|
|
|
$level = $info['level'];
|
|
|
|
//获取文件后缀名
|
|
|
|
$suffix = substr(strrchr($info['path'], '.'), 1);
|
|
|
|
//后缀改为小写
|
|
|
|
$suffix = strtolower($suffix);
|
|
|
|
if(($suffix == 'png') || ($suffix == 'jpg') || ($suffix == 'jpeg')) {
|
|
|
|
$iscompress = 1;
|
|
|
|
}
|
|
|
|
if($iscompress == 0){
|
|
|
|
echo '该后缀不支持压缩!';
|
|
|
|
exit;
|
|
|
|
}
|
|
|
|
if($compress == 1){
|
|
|
|
echo '该图片已经压缩!';
|
|
|
|
exit;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//对图片进行压缩
|
|
|
|
if(($tinypng['option'] == true) && ($iscompress == 1) && ($compress == 0)) {
|
|
|
|
//初始化
|
|
|
|
\Tinify\setKey($tinykey);
|
|
|
|
$source = \Tinify\fromUrl($imgurl);
|
|
|
|
//覆盖原有图片
|
|
|
|
$source->toFile(APP.$info['path']);
|
|
|
|
//更新数据库
|
|
|
|
$database->update("imginfo",[
|
|
|
|
"compress" => 1
|
|
|
|
],[
|
|
|
|
"id" => $id
|
|
|
|
]);
|
|
|
|
$dispose['compress'] = 1;
|
|
|
|
echo '压缩成功!';
|
|
|
|
}
|
|
|
|
?>
|