update api.php.

This commit is contained in:
Bigsk 2020-08-05 08:55:08 +08:00 committed by Gitee
parent e23c299c0d
commit 09f0aaed51

201
api.php
View File

@ -2,14 +2,16 @@
//Copyright GHINK Network Studio.
//LGPLv3.0
//---------------------------------------------------------------------//
$stream_opts = [
error_reporting(0);//抑制报错
$stream_opts = [//防止https证书错误
"ssl" => [
"verify_peer"=>false,
"verify_peer_name"=>false,
]
]; //读取API JSON并转为数组
$teamjson=file_get_contents("https://api.ghink.net/fah/json/team/?teamid=".$_GET['teamid'],false, stream_context_create($stream_opts));
$donorjson=file_get_contents("https://api.ghink.net/fah/json/donor/?donor=".$_GET['donor'],false, stream_context_create($stream_opts));
];
//读取API JSON并转为数组
$teamjson=file_get_contents("http://api.ghink.net/fah/json/?team=".$_GET['team'],false, stream_context_create($stream_opts));
$donorjson=file_get_contents("http://api.ghink.net/fah/json/?donor=".$_GET['donor'],false, stream_context_create($stream_opts));
$team=json_decode($teamjson, true);
$donor=json_decode($donorjson, true);
//---------------------------------------------------------------------//
@ -64,33 +66,164 @@ foreach ($donor as $key => $value) {
}
}
//---------------------------------------------------------------------//
$canvas = imagecreatetruecolor(465, 92);//载入画布
$background = imagecolorallocatealpha($canvas, 0, 0, 0, 127);//设置背景色
imagefill($canvas, 0, 0, $background);//填充透明色
imagecolortransparent($canvas, $background);//设置背景色
$text_fonts = 'fnt.ttf';//设置字体
$color = imagecolorallocate($canvas, 255, 255, 255);//设置文字颜色
$text_size = 7;//设置文字大小
$logo_url = 'img.png';//设置源图片目录
$logo = @file_get_contents($logo_url);//读取源文件
$logo_img = imagecreatefromstring($logo);//解析为图片
imagecopyresampled($canvas, $logo_img, 0, 0, 0, 0, 465, 92, imagesx($logo_img), imagesy($logo_img));//覆盖图层
//---------------------------------------------------------------------//
//团队部分
imagettftext($canvas, $text_size, 0, 90, 13, $color, $text_fonts, $teamname);//团队名
imagettftext($canvas, $text_size, 0, 100, 30, $color, $text_fonts, $teamid);//团队编号
imagettftext($canvas, $text_size, 0, 100, 48, $color, $text_fonts, $teamrank);//团队排名
imagettftext($canvas, $text_size, 0, 110, 65, $color, $text_fonts, $teamwus);//已完成的任务
imagettftext($canvas, $text_size, 0, 90, 82, $color, $text_fonts, $teamscores);//总积分
//---------------------------------------------------------------------//
//个人部分
imagettftext($canvas, $text_size, 0, 280, 13, $color, $text_fonts, $name);//用户名
imagettftext($canvas, $text_size, 0, 290, 32, $color, $text_fonts, $rank);//用户排名
imagettftext($canvas, $text_size, 0, 300, 50, $color, $text_fonts, $wus);//已完成任务
imagettftext($canvas, $text_size, 0, 280, 68, $color, $text_fonts, $scores);//总积分
imagettftext($canvas, $text_size, 0, 310, 82, $color, $text_fonts, $lastwus);//最近一次完成
//---------------------------------------------------------------------//
header("content-type:image/png");//设置网页为图片
imagepng($canvas);//输出图片
imagedestroy($canvas);//关闭进程
//---------------------------------------------------------------------//
if($_GET['mode'] == 'advanced'){//判断是否是高级模式
if($_GET['donor'] == null){
echo '{"error": "10001"}';
}elseif($_GET['team'] == null){
echo '{"error": "10001"}';
}else{
if($_GET['height'] == null){//判断是否有提交画布大小
if($_GET['weight'] == null){
$canvas = imagecreatetruecolor(465, 92);//载入默认画布
$weight = 465;
$height = 95;
$weightdefault = 465;
$heightdefault = 95;
}else{
$error = 10001;
}
}elseif($_GET['weight'] == null){
if($_GET['height'] == null){
$canvas = imagecreatetruecolor(465, 92);//载入默认画布
$weight = 465;
$height = 95;
$weightdefault = 465;
$heightdefault = 95;
}else{
$error = 10001;
}
}else{
$canvas = imagecreatetruecolor($_GET['weight'], $_GET['height']);//根据提交的参数载入画布
$weightdefault = $_GET['weight'];
$heightdefalut = $_GET['height'];
}
$background = imagecolorallocatealpha($canvas, 0, 0, 0, 127);//设置背景色
imagefill($canvas, 0, 0, $background);//填充透明色
imagecolortransparent($canvas, $background);//设置背景色
if($_GET['fnt'] == null){//判断是否有提交自定义字体
$text_fonts = 'fnt/default.ttf';//设置默认字体
}else{
$text_fonts = 'fnt/'.$_GET['fnt'];//根据提交的字体地址载入自定义字体
}
if($_GET['red'] == null){//判断是否有提交自定义字体颜色
if($_GET['green'] == null){
if($_GET['blue'] == null){
$color = imagecolorallocate($canvas, 255, 255, 255);//设置默认文字颜色
}else{
$error = 10001;
}
}else{
$error = 10001;
}
}else{
if($_GET['green'] == null){
}else{
if($_GET['blue'] == null){
}else{
$color = imagecolorallocate($canvas, $_GET['red'], $_GET['green'], $_GET['blue']);//设置自定义文字颜色
}
}
}
if($_GET['textsize'] == null){//判断是否有提交自定义字体
$text_size = 7;//设置默认字体大小
}else{
$text_size = $_GET['textsize'];//设置自定义字体大小
}
if($_GET['img'] == null){//判断是否有提交自定义底图
$logo_url = 'img.png';//设置默认源图片
}else{
$logo_url = $_GET['img'];//设置自定义源图片
}
$logo = file_get_contents($logo_url);//读取源文件
$logo_img = imagecreatefromstring($logo);//解析为图片
if($_GET['imgx'] == null){//判断是否有提交自定义底图位置
if($_GET['imgy'] == null){
$imgx = 0;//设置默认底图位置
$imgy = 0;
}else{
$error = 10001;
}
}else{
if($_GET['imgy'] == null){
$error = 10001;
}else{
$imgx = $_GET['imgx'];//设置自定义底图位置
$imgy = $_GET['imgy'];
}
}
if($_GET['putweight'] == null){
if($_GET['putheight'] == null){
$weight = $weightdefault;
$height = $heightdefault;
}else{
$error = 10001;
}
}else{
if($_GET['putheight'] == null){
$error = 10001;
}else{
$weight = $_GET['putweight'];
$height = $_GET['putheight'];
}
}
imagecopyresampled($canvas, $logo_img, $imgx, $imgy, 0, 0, $weight, $height, imagesx($logo_img), imagesy($logo_img));//覆盖图层
//---------------------------------------------------------------------//
//团队部分
imagettftext($canvas, $text_size, 0, 90, 13, $color, $text_fonts, $teamname);//团队名称
imagettftext($canvas, $text_size, 0, 100, 30, $color, $text_fonts, $teamid);//团队编号
imagettftext($canvas, $text_size, 0, 100, 48, $color, $text_fonts, $teamrank);//团队排名
imagettftext($canvas, $text_size, 0, 110, 65, $color, $text_fonts, $teamwus);//已完成的任务
imagettftext($canvas, $text_size, 0, 90, 82, $color, $text_fonts, $teamscores);//总积分
//---------------------------------------------------------------------//
//个人部分
imagettftext($canvas, $text_size, 0, 280, 13, $color, $text_fonts, $name);//用户名
imagettftext($canvas, $text_size, 0, 290, 32, $color, $text_fonts, $rank);//用户排名
imagettftext($canvas, $text_size, 0, 300, 50, $color, $text_fonts, $wus);//已完成任务
imagettftext($canvas, $text_size, 0, 280, 68, $color, $text_fonts, $scores);//总积分
imagettftext($canvas, $text_size, 0, 310, 82, $color, $text_fonts, $lastwus);//最近一次完成
//---------------------------------------------------------------------//
if($error == null){//判断是否有错误
header("content-type:image/png");//设置网页为图片
imagepng($canvas);//输出图片
imagedestroy($canvas);//关闭进程
}elseif($error == 10001){
echo '{"error": "10001"}';
}
}
}else{
if($_GET['donor'] == null){
echo '{"error": "10001"}';
}elseif($_GET['team'] == null){
echo '{"error": "10001"}';
}else{
$canvas = imagecreatetruecolor(465, 92);//载入画布
$background = imagecolorallocatealpha($canvas, 0, 0, 0, 127);//设置背景色
imagefill($canvas, 0, 0, $background);//填充透明色
imagecolortransparent($canvas, $background);//设置背景色
$text_fonts = 'fnt/default.ttf';//设置字体
$color = imagecolorallocate($canvas, 255, 255, 255);//设置文字颜色
$text_size = 7;//设置文字大小
$logo_url = 'img.png';//设置源图片目录
$logo = file_get_contents($logo_url);//读取源文件
$logo_img = imagecreatefromstring($logo);//解析为图片
imagecopyresampled($canvas, $logo_img, 0, 0, 0, 0, 465, 92, imagesx($logo_img), imagesy($logo_img));//覆盖图层
//---------------------------------------------------------------------//
//团队部分
imagettftext($canvas, $text_size, 0, 90, 13, $color, $text_fonts, $teamname);//团队名
imagettftext($canvas, $text_size, 0, 100, 30, $color, $text_fonts, $teamid);//团队编号
imagettftext($canvas, $text_size, 0, 100, 48, $color, $text_fonts, $teamrank);//团队排名
imagettftext($canvas, $text_size, 0, 110, 65, $color, $text_fonts, $teamwus);//已完成的任务
imagettftext($canvas, $text_size, 0, 90, 82, $color, $text_fonts, $teamscores);//总积分
//---------------------------------------------------------------------//
//个人部分
imagettftext($canvas, $text_size, 0, 280, 13, $color, $text_fonts, $name);//用户名
imagettftext($canvas, $text_size, 0, 290, 32, $color, $text_fonts, $rank);//用户排名
imagettftext($canvas, $text_size, 0, 300, 50, $color, $text_fonts, $wus);//已完成任务
imagettftext($canvas, $text_size, 0, 280, 68, $color, $text_fonts, $scores);//总积分
imagettftext($canvas, $text_size, 0, 310, 82, $color, $text_fonts, $lastwus);//最近一次完成
//---------------------------------------------------------------------//
header("content-type:image/png");//设置网页为图片
imagepng($canvas);//输出图片
imagedestroy($canvas);//关闭进程
}
}