版权声明:本文为博主原创文章,可以转载,但必须注明来源。 https://blog.csdn.net/qq_40176716/article/details/84329825
大家有没有发现,许多的表情都是快速生成的,并不是人们打开PS等P图软件一个个P的
这篇博客先来讲解PHP+html简单生成静态图片
拿啥图装X或者来示范呢
嘿嘿
哈哈,CSDN博客,应该有代表性了吧
然后,想想修改啥
访问。。排名。。名字。。等等
emmm
demo文件目录
解释下:
bootstrap是一个开源的UI,说白了就是让网页变得好看的一个东西,可以忽略(主要是html太难看看着不舒服,虽然还是不好看)
bg.jpg 是背景图片,我们需要在这个上面进行编辑
boke.html 表单提交界面
csdn.php 生成图片界面(主要的)
demo.jpg 就是上面的原始图
index.php 显示界面
put.html 输出图片界面
stsong.ttf 字体文件,这个是宋体
bg.jpg如下
我们把需要更改的地方先处理掉,最上面的那个懒得弄了,简单介绍
boke.html
先引入了bootstapUI,然后加入了一个图片,就是原始图显示,加入一个表单
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>生成CSDN博客图片</title>
<link href="bootstrap/css/bootstrap.css" rel="stylesheet">
</head>
<body>
<img src="demo.jpg" width="50%" style="margin:80px 25% 80px 25%;"/>
<form class="form-horizontal" role="form" method="get" action=csdn.php>
<div class="form-group" >
<label class="col-sm-4 control-label">CSDN名称</label>
<div class="col-sm-5">
<input type="text" name="name" class="form-control" placeholder="请输入CSDN名字">
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label">访问人数</label>
<div class="col-sm-5">
<input type="text" name="people" class="form-control" placeholder="请输入访问人数">
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label">排名</label>
<div class="col-sm-5">
<input type="text" name="ranking" class="form-control" placeholder="请输入排名">
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label">积分</label>
<div class="col-sm-5">
<input type="text" name="integral" class="form-control" placeholder="请输入积分">
</div>
</div>
<div class="form-group" >
<div class="col-sm-offset-4 col-sm-5">
<button type="submit" class="btn btn-info btn-block" >提交生成</button>
</div>
</div>
</form>
</body>
</html>
csdn.php
这里是引用的php的GD库写的
主要的方法是imageTtfText,我写的不详细,不过我找到了一个不错的
可以了解imageTtfText——传送
什么xy啊可以在ps中取出来
<?php
/**
* Created by PhpStorm.
* User: 莫言情难忘
* Date: 2018/11/21
* Time: 21:10
*/
header("content-type:image/jpeg");
$name = $_GET['name']?$_GET['name']:"莫言情难忘";
$people = $_GET['people']?$_GET['people']:"99万+";
$ranking = $_GET['ranking']?$_GET['ranking']:"99万+";
$integral = $_GET['integral']?$_GET['integral']:"666666";
$im = imagecreatetruecolor(384, 438); // 设置画布
$bg = imagecreatefromjpeg('bg.jpg'); // 设置背景图片
imagecopy($im,$bg,0,0,0,0,384,438); // 将背景图片拷贝到画布相应位置
imagedestroy($bg); // 销毁背景图片
$font = __DIR__ . '/stsong.ttf'; // 设置字体 // 设置字体,指向ttf文件
$blacka = imagecolorallocate($im, 15, 23, 25); // 颜色
/* 写入内容 */
imagettftext($im, 15, 0, 96, 138, $blacka, $font,$name ); // 写入名称
imagettftext($im, 15, 0, 97, 138, $blacka, $font,$name ); // 这里x+1的原因是:这里字体应该设置为粗体,我懒得找了,直接x+1实现粗体这个方式
imagettftext($im, 15, 0, 252, 325, $blacka, $font, $people); // 写入人数
imagettftext($im, 15, 0, 253, 362, $blacka, $font, $ranking); // 写入排名
imagettftext($im, 15, 0, 84, 361, $blacka, $font, $integral); // 写入积分
imagejpeg($im); // 生成jpeg格式图片
imagedestroy($im); // 销毁图片
index.php
不解释了,看下吧
<?php
/**
* Created by PhpStorm.
* User: 莫言情难忘
* Date: 2018/11/21
* Time: 21:32
*/
if(isset($_GET['name'])){ // 如果用户已经输入信息,拼接生成图片
$url = "csdn.php?name=".$_GET['name']."&people=".$_GET['people']."&ranking=".$_GET['ranking']
."&integral=".$_GET['integral'];
include 'put.html'; // 引入生成图片页面
}else{
include 'boke.html'; // 引入填写表单页面
}
put.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>生成成功</title>
</head>
<body>
<img src="<?php echo $url ?>" />
</body>
</html>
最终结果是
很多东西都可以替换,我只是懒而已,写个博客太费力了,毕竟我是理科生。。。
链接: https://pan.baidu.com/s/1zEOL8b9oS9pD3t52jMwrag
提取码: 6666