up.php
上传图片并重命名保存至img文件夹
调用jpg.exe(传入路径,处理大容量图片,缩小文件大小)
跳转人脸识别界面。
<?php
//设置文件路径
header('Content-Type:text/html;charset=GB2312');
$wenjiansrc="img/";
//设置文件名
error_reporting(0);
?>
<?php
if ($_POST['fatie'])
{
if(is_uploaded_file($_FILES['sfile']['tmp_name']))
{
//初始化上传数据
$file=$_FILES["sfile"];
$name=$file["name"];
$type=$file["type"];
$tmp_name=$file["tmp_name"];
$size=$file["size"];
$error=$file["error"];
switch ($type){
case 'image/pjpeg':$oktype=true;
break;
case 'image/jpeg':$oktype=true;
break;
case 'image/gif':$oktype=true;
break;
case 'image/png':$oktype=true;
break;
case 'text/plain':$oktype=true;
break;
case 'application/octet-stream':$oktype=true;
break;
case 'application/x-shockwave-flash':$oktype=true;
break;
}
if($oktype)
{move_uploaded_file($tmp_name,$wenjiansrc.$name);//移动文件
$date=date('Ymdhis');
$filetype = pathinfo($name, PATHINFO_EXTENSION);//获取后缀名
$newpath=$date.'.'.$filetype;
$destination=$wenjiansrc.$name;
rename($destination,$wenjiansrc.$newpath);//重命名
echo $wenjiansrc.$newpath;
//上传图片并跳转界面
sleep(10);
exec('start C:\wamp\www\scb\jpg.exe '.$wenjiansrc.$newpath);
sleep(10);
echo "<meta http-equiv='refresh' content='5;url=http://106.12.13.133/scb/wj.php?filename=".$wenjiansrc.$newpath."'>";
}
}
}
?>
<form action="" method="post"name="myform" enctype="multipart/form-data"onsubmit="">
<input type="file" name="sfile" />
<input type="submit" name="fatie" value="确认上传"/></span></p>
</form>
</body>
</html>
wj.php
调用人脸识别,人脸检测接口
解析数据。调用php gd库绘制71个脸部特征点,和任务信息文本
<?php
header('Content-Type:text/html;charset=GB2312');
//error_reporting(0);
require_once 'AipFace.php';
// 你的 APPID AK SK
const APP_ID = '11635999';
const API_KEY = '7Ci11DT5VmibtTvsivvw5LG1';
const SECRET_KEY = 'qHKu29rrtKLkIfnsL1oDsfyDvdO7vST6';
$client = new AipFace(APP_ID, API_KEY, SECRET_KEY);
$image ="http://106.12.13.133/scb/".$_GET['filename'];
//$image = file_get_contents('1.jpg');
$imageType="URL";
// 调用人脸检测
//$client->detect($image, $imageType);
// 如果有可选参数
$options = array();
$options["face_field"] = "beauty,glasses,landmark,gender,expression,age";
$options["max_face_num"] = 2;
$options["face_type"] = "LIVE";
// 带参数调用人脸检测
//print_r($client->detect($image, $imageType, $options));
$SSS=$client->detect($image, $imageType, $options);
//print("<pre>"); // 格式化输出数组
// print_r($SSS);
// print("</pre>");
//echo $SSS['result']['face_list'][0]['landmark'][0]['x'];
/*
$str="";
for($x=0; $x<=71; $x++)
{
$str=$str."\r\n[".$x."]";
$str=$str."\r\nx=".floor($SSS['result']['face_list'][0]['landmark72'][$x]['x']);
$str=$str."\r\ny=".floor($SSS['result']['face_list'][0]['landmark72'][$x]['y']);
}
//写出ini文件
file_put_contents("test.ini",$str);
*/
//调用gdi
//$im=imagecreatetruecolor(800,600);
$im = imagecreatefromjpeg($_GET['filename']);
//默认是黑色背景,修改为白色
//1.创建画布,默认的背景是黑色
$red=imagecolorallocate($im,255,0,0);
$black=imagecolorallocate($im,0,0,0);
$lv=imagecolorallocate($im,0,238,51);
$lan=imagecolorallocate($im,150,152,183);
//imagerectangle($im,1,51,111,511,$red);
for($i=0; $i<=71; $i++)
{
$x=floor($SSS['result']['face_list'][0]['landmark72'][$i]['x']);
$y=floor($SSS['result']['face_list'][0]['landmark72'][$i]['y']);
imagerectangle($im,$x,$y,$x+5,$y+5,$lv);
//imagerectangle($im,1,51,111,511,$red);
}
//绘制信息面板male男female女
$text1=$SSS['result']['face_list'][0]['gender']['type'];
//none无表情smile 微笑 laugh 大笑
$text2=$SSS['result']['face_list'][0]['expression']['type'];
$text3=$SSS['result']['face_list'][0]['beauty'];
$text4=$SSS['result']['face_list'][0]['age'];
$text5=$SSS['result']['face_list'][0]['glasses']['type'];
if($text1=='male')
{
//imagestring($im,16,10,50,"Gender:".$text1,$lan);
imagefttext($im, 13, 0, 10, 50, $lan, './a.ttf',iconv('GB2312','UTF-8','性别:♂男'));
}
else{//imagestring($im,16,10,50,"Gender:".$text1,$red);
imagefttext($im, 13, 0, 10, 50, $red, './a.ttf',iconv('GB2312','UTF-8','性别:♀女'));
}
//imagestring($im,16,10,70,"表情:".$text2,$red);
imagefttext($im, 13, 0, 10, 70, $red, './a.ttf',iconv('GB2312','UTF-8','表情:'.$text2));
// imagestring($im,16,10,90,"颜值:".$text3,$red);
imagefttext($im, 13, 0, 10, 90, $red, './a.ttf',iconv('GB2312','UTF-8','颜值:'.$text3));
// imagestring($im,16,10,110,"年龄".$text4,$red);
imagefttext($im, 13, 0, 10, 110, $red, './a.ttf',iconv('GB2312','UTF-8','年龄:'.$text4));
//imagestring($im,16,10,130,"眼镜:".$text5,$red);
imagefttext($im, 13, 0, 10, 130, $red, './a.ttf',iconv('GB2312','UTF-8','眼镜:'.$text5));
//imagefttext($im, 13, 0, 10, 55, $red, './a.ttf',iconv('GB2312','UTF-8','中文水印'));
//图像,size,角度,x,y,颜色,字体
header("content-type:image/png");
imagepng($im);
imagedestory($im);
?>