PHP自定义生成图片——静态

大家有没有发现,许多的表情都是快速生成的,并不是人们打开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如下

bg

我们把需要更改的地方先处理掉,最上面的那个懒得弄了,简单介绍

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/1ErhPh8fa_eY5Tzww7pDWSg?pwd=CSDN 
提取码:CSDN 

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
制作自定义动态图片静态图片作为背景生成二维码,并且二维码内容为中文,可以使用qrcode和PIL库来实现。 首先,安装qrcode和PIL库,可以使用以下命令: ``` pip install qrcode pip install Pillow ``` 然后,可以使用以下代码来生成自定义动态图片静态图片作为背景的二维码,二维码内容为中文: ```python import qrcode from PIL import Image, ImageDraw, ImageFont # 打开背景图片 bg_img = Image.open("path/to/background_image.jpg") # 创建二维码图片 qr = qrcode.QRCode( version=1, error_correction=qrcode.constants.ERROR_CORRECT_L, box_size=10, border=4, ) qr.add_data("http://www.example.com") qr.make(fit=True) qr_img = qr.make_image(fill_color="black", back_color="white") # 将二维码图片粘贴到背景图片上 bg_img.paste(qr_img, (100, 100)) # 添加中文文字 img_draw = ImageDraw.Draw(bg_img) chinese_text = "你好,世界!" font = ImageFont.truetype("path/to/font.ttf", 20) # 指定中文字体和字号 img_draw.text((10, 10), chinese_text, font=font, fill="black") # 保存图片 bg_img.save("path/to/qr_code.png") ``` 这里,我们首先使用PIL库的Image模块打开背景图片,然后使用qrcode库创建二维码图片。接着,我们使用paste()函数将二维码图片粘贴到背景图片上。最后,我们使用ImageDraw模块添加中文文字,并使用save()函数将生成图片保存到本地。 需要注意的是,PIL库需要的中文字体文件需要提前下载,可以在网上搜索下载。并且需要将中文字体文件的路径传递给truetype()函数。 希望这个方法能够帮助到你!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值