info();
$vitae['Experience'] = $Programmer->Experience();
$vitae['Introduction'] = $Programmer->Introduction();
$vitae['Item'] = $Programmer->Item();
new Img($vitae);
}
class Img{
const imgWidth = '1700';
const imgHeight = '1600';
const font_file = "c:\\WINDOWS\\Fonts\\simhei.ttf"; //LINUX自己换字体
function __construct($content){
$img = imagecreate(Img::imgWidth, Img::imgHeight);
imagecolorallocate($img, 255, 255, 255);
$color = imagecolorallocate($img,0,0,0);
$this->table($img , $color);
$this->photo($img , $color);
$this->title($img , $color);
$this->info($img , $content['Info'] , $color);
$this->Introduction($img , $content['Introduction'] , $color);
$this->Experience($img , $content['Experience'] , $color);
$this->Item($img , $content['Item'] , $color);
$this->wateryin($img , $color);
imagepng($img);
}
public function table($img , $color){
imageline($img , 300 , 50 , 300 , Img::imgHeight - 50 , $color); //左边界
imageline($img , Img::imgWidth - 300 , 50 , Img::imgWidth - 300 , Img::imgHeight - 50 , $color); //右边界
imageline($img , 300 , 50 , Img::imgWidth - 300 , 50 , $color); //上边界
imageline($img , 300 , Img::imgHeight - 50 , Img::imgWidth - 300 , Img::imgHeight - 50 , $color); //下边界
imageline($img , 300 , 130 , Img::imgWidth - 300 , 130 , $color); //标题
imageline($img , 300 , 190 , Img::imgWidth - 500 , 190 , $color); //第一行
imageline($img , 300 , 250 , Img::imgWidth - 500 , 250 , $color); //第二行
imageline($img , 300 , 310 , Img::imgWidth - 300 , 310 , $color); //第三行
imageline($img , 300 , 360 , Img::imgWidth - 300 , 360 , $color); //第三行
imageline($img , Img::imgWidth-500 , 130 , Img::imgWidth - 500 , 310 , $color); //photo
imageline($img , Img::imgWidth-1100 , 130 , Img::imgWidth - 1100 , 310 , $color); //竖线
imageline($img , Img::imgWidth-780 , 130 , Img::imgWidth - 780 , 310 , $color); //竖线
imageline($img , 300 , 710 , Img::imgWidth - 300 , 710 , $color); //第四行(介绍)
imageline($img , 300 , 760 , Img::imgWidth - 300 , 760 , $color); //第四行(介绍)
imageline($img , 300 , 1110 , Img::imgWidth - 300 , 1110 , $color); //第五行(介绍)
imageline($img , 300 , 1160 , Img::imgWidth - 300 , 1160 , $color); //第四行(介绍)
}
public function photo($img , $color){
imageellipse($img, 1260, 180, 60, 40,$color); //左眼
imageellipse($img, 1340, 180, 60, 40,$color); //右眼
imagearc($img, 1300, 180, 30, 20,30,150,$color); //眼镜
imagearc($img, 1350, 140, 80, 100,0,60,$color);
imagearc($img, 1235, 130, 50, 110,100,160,$color);
imagearc($img, 1300, 230, 100, 100, 20, 160,$color); //以下是嘴巴
imagearc($img, 1290, 240, 130, 20, 20, 125,$color);
imagerectangle($img, 1290, 250, 1280, 260,$color);
imagerectangle($img, 1305, 250, 1295, 260,$color);
imagerectangle($img, 1310, 250, 1320, 260,$color);
}
public function title($img , $color){
imagettftext($img, 20, 0, 780 ,100, $color, Img::font_file, '程序员简历');
imagettftext($img, 20, 0, 790 ,345, $color, Img::font_file, '工作经历');
imagettftext($img, 20, 0, 790 ,745, $color, Img::font_file, '项目经验');
imagettftext($img, 20, 0, 790 ,1145, $color, Img::font_file, '个人简介');
}
public function info($img , $info , $color){
foreach($info as $key=>$value){
switch ($key){
case "Name":
imagettftext($img, 15, 0, 350 ,170, $color, Img::font_file, "{$key}:{$value}"); //姓名
break;
case "Age":
imagettftext($img, 15, 0, 630 ,170, $color, Img::font_file, "{$key}:{$value}"); //年龄
break;
case "Gender":
imagettftext($img, 15, 0, 950 ,170, $color, Img::font_file, "{$key}:{$value}"); //性别
break;
case "EnglisNname":
imagettftext($img, 15, 0, 350 ,230, $color, Img::font_file, "{$key}:{$value}"); //English Name
break;
case "University":
imagettftext($img, 15, 0, 630 ,230, $color, Img::font_file, "{$key}:{$value}"); //毕业院校
break;
case "Major":
imagettftext($img, 15, 0, 950 ,230, $color, Img::font_file, "{$key}:{$value}"); //专业
break;
case "LivingPlace":
imagettftext($img, 15, 0, 350 ,290, $color, Img::font_file, "{$key}:{$value}"); //现居地
break;
case "Phone":
imagettftext($img, 15, 0, 630 ,290, $color, Img::font_file, "{$key}:{$value}"); //电话
break;
case "Email":
imagettftext($img, 15, 0, 950 ,290, $color, Img::font_file, "{$key}:{$value}"); //Email
break;
}
}
}
public function Introduction($img , $Introduction , $color){
$str = explode('' , $Introduction);
foreach($str as $key=>$value){
imagettftext($img, 14, 0, 350 ,1200+$a*35, $color, Img::font_file, $value);
$a++;
}
}
public function Experience($img , $Experience , $color){
foreach($Experience as $key=>$value){
imagettftext($img, 14, 0, 350 ,400+$a*35, $color, Img::font_file, $key);
imagettftext($img, 14, 0, 750 ,400+$a*35, $color, Img::font_file, $value);
$a++;
}
}
public function Item($img , $Item , $color){
$str = explode('' , $Item);
foreach($str as $key=>$value){
imagettftext($img, 14, 0, 350 ,800+$a*35, $color, Img::font_file, $value);
$a++;
}
}
public function wateryin($img , $color){
$str = 'by:hackpar';
imagettftext($img, 14, 0, 1450 ,1550, $color, Img::font_file, $str);
}
}
class Programmer{
const Name = 'ZJD';
const Gender = 'Male';
const Age = '21';
const Englishname = 'Hackpar';
const University = "";
const Major = 'Software';
const LivingPlace = "Xi'an";
const Phone = '';
const Email = 'hackpar@gmail.com';
public function info(){
$info = array(
'Name' => Programmer::Name,
'Gender' => Programmer::Gender,
'Age' => Programmer::Age,
'EnglisNname' => Programmer::Englishname,
'University' => Programmer::University,
'Major' => Programmer::Major,
'LivingPlace' => Programmer::LivingPlace,
'Phone' => Programmer::Phone,
'Email' => Programmer::Email,
);
return $info;
}
public function Experience(){
$exp = array();
$exp['2011-04 to 2011-10'] = '';
$exp['2012-02 to 2012-12'] = '';
$exp['2013-03 to 2013-06'] = '';
$exp['2013-07 to now'] = '';
return $exp;
}
public function Introduction(){
$int = '一个苦逼的PHP码农,没有Geek的技术,但是有一颗Geek的心.';
return $int;
}
public function Item(){
$item = '项目介绍';
return $item;
}
}
?> 0
0
本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门AI工具
相关专题
想找真正自由、无限制的上网体验?本合集精选2025年最开放、隐私强、访问无阻的浏览器App,涵盖Tor、Brave、Via、X浏览器、Mullvad等高自由度工具。支持自定义搜索引擎、广告拦截、隐身模式及全球网站无障碍访问,部分更具备防追踪、去谷歌化、双内核切换等高级功能。无论日常浏览、隐私保护还是突破地域限制,总有一款适合你!
61
2025.12.31
想让网页流畅播放视频?本合集详解HTML5视频播放核心方法!涵盖<video>标签基础用法、多格式兼容(MP4/WebM/OGV)、自定义播放控件、响应式适配及常见浏览器兼容问题解决方案。无需插件,纯前端实现高清视频嵌入,助你快速打造现代化网页视频体验。
16
2025.12.31
想快速上手HTML5开发?本合集为你整理最实用的HTML5使用指南!涵盖HTML5基础语法、主流框架(如Bootstrap、Vue、React)集成方法,以及无需安装、直接在线编辑运行的平台推荐(如CodePen、JSFiddle)。无论你是新手还是进阶开发者,都能轻松掌握HTML5网页制作、响应式布局与交互功能开发,零配置开启高效前端编程之旅!
2
2025.12.31
热门下载
相关下载
精品课程
共6课时 | 0.3万人学习
共7课时 | 0.4万人学习
共2课时 | 974人学习






