/**
* Desc:
* Created by: Joker
* Date: 2020/2/27
* Time: 17:03
* @param $coupleContent: 对联内容
* @param $LayDir: 排版方向 W为横排 H为竖排
* @param $fileName: 生成的对联图片名
*/
function create_couplet($coupleContent="四海升平 安居乐业",$LayDir="H",$fileName="对联"){
$dlArr = explode(" ",$coupleContent);
// 背景图的宽,高都为250px 10为我设定的每联之间的间隔 10为首尾联靠底图的总间隔,所以首联距离底图为5px;
if (strtoupper($LayDir)=="W"){
$h = 250*count($dlArr) + 10 * (count($dlArr) - 1)+10;
$w = count(mb_str_split($dlArr[0])) * 250 + 10;
}else{
$w = 250*count($dlArr) + 10 * (count($dlArr) - 1)+10;
$h = count(mb_str_split($dlArr[0])) * 250 + 10;
}
$m = imagecreate($w,$h);
// 设置画布的背景颜色
imagecolorallocate($m,255,255,255);
// 输出底图图像
Imagejpeg($m,'temp.jpg');
$bigImg = imagecreatefromstring(file_get_contents("temp.jpg"));
create_jpg($bigImg,$dlArr,$fileName,$LayDir);
}
/**
* Desc:
* Created by: Joker
* Date: 2020/2/27
* Time: 17:51
* @param $bigImg: 底图
* @param $dlArr: 对联内容上下联组成的数组
* @param $fileName: 输入的图片名
* @param $LayDir: 排列方式
*/
function create_jpg($bigImg,$dlArr,$fileName,$LayDir){
foreach($dlArr as $kl=>$vl){
$array = mb_str_split($vl);
foreach($array as $k=>$v){
// 字体的大小,这里不是px,而是磅,具体的计算方式可以指定百度
$size = 120;
// 字体文件,这里就不提供下载了,担忧引起纠纷,如果想做测试可以使用 window 自带的fonts文件,文件所在目录: C:\Windows\Fonts\
$font = "FZXKFW.TTF";
// 加载已有图像
$img = imagecreatefromjpeg("duilian.jpg");
// 设置字体颜色
$black = imagecolorallocate($img, 0, 0, 0);
// imagefttext("Image", "字体大小", "旋转", "左边距","上边距", "字体颜色", "字体文件名称", "插入文本内容");
imagettftext($img, $size, 0, 50,185, $black, $font, $v);
$qCodeImg = $img;
if (strtoupper($LayDir)=="W"){
$up = 5 + 10 * $kl + $kl * 250 ;
$left = 5+(250*$k);
}else{
$left = 5 + 10*(count($dlArr)-$kl-1) + (count($dlArr)-$kl-1) * 250 ;
$up = 5+(250*$k);
}
imagecopymerge($bigImg, $qCodeImg,$left,$up, 0, 0, 250, 250, 100);
}
}
unlink("temp.jpg");
imagejpeg($bigImg,str_replace('+', '%20', iconv('UTF-8', 'GB18030',$fileName.".jpg")));
}
/**
* Desc: 将单联内容分解为数组
* Created by: Joker
* Date: 2020/2/27
* Time: 17:07
* @param $content: 上联或者下联的内容
* @return array[]|false|string[]
*/
function mb_str_split($content){
return preg_split('/(?, $content);
}
$file_name = "对联";
create_couplet("瑞雪兆丰年 爆竹辞旧岁","h",$file_name);
?>
<img src="=$file_name.'.jpg'?>" alt="">
create_couplet("瑞雪兆丰年 爆竹辞旧岁","h",'对联');
create_couplet("普天同庆 欢度春节","w",'春节');
create_couplet("你是我最美的期待","w",'最美');
create_couplet("绿水青山枉自多 华佗无奈小虫何 千村薜荔人遗矢 万户萧疏鬼唱歌 坐地日行八万里 巡天遥看一千河 牛郎欲问瘟神事 一样悲欢逐逝波","h",'送瘟神其一');
create_couplet("春风杨柳万千条 六亿神州尽舜尧 红雨随心翻作浪 青山着意化为桥 天连五岭银锄落 地动三河铁臂摇 借问瘟君欲何往 纸船明烛照天烧","h",'送瘟神其二');
create_couplet("武汉加油 中国加油","w",'加油');
受到天元浪子老师的启发 感谢!
武汉加油,中国加油!
向所有奋斗在疫情一线的同胞们致敬!
愿大家都平安归来!