本站资源来自互联网用户收集发布,仅供用于学习和交流。如有侵权之处,请联系站长并出示版权证明以便删除,敬请谅解!(邮箱:whctwlgzs@foxmail.com)

无忧技术吧

 找回密码
 立即注册

QQ登录

只需一步,快速开始

title
广告展示页面
查看: 1430|回复: 208

[php源码] 本地个性化个人名片生成源码(无第三方接口版)

  [复制链接]
admin (帅逼1)实名认证

积分信息:
无忧币:108866
交易币:2147480567
贡献:999999

我的勋章:

灌水之王突出贡献优秀版主荣誉管理论坛元老沙发王源码大师在线王终身成就机器王知识库土豪活跃会员最佳新人热心会员


发表于 5 天前 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转无忧吧。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本地个性化个人名片生成源码(无第三方接口版)
**
一、系统架构与技术栈
(一)核心功能模块
  • 信息录入:头像上传、姓名 / 职位 / 联系方式 / 个人介绍输入
  • 样式配置:预设 3 套名片模板,支持自定义 CSS 样式
  • 本地生成:直接生成 PNG 图片,支持下载保存至本地
  • 数据存储:本地 JSON 文件存储历史生成记录(可选功能)
(二)技术栈选择
  • 前端:HTML5/CSS3/JavaScript(原生 JS 无框架依赖)
  • 后端:PHP 7.0+(处理图片生成及文件操作)
  • 图片生成:GD 库(PHP 内置图像处理扩展)
  • 存储:本地文件系统(无需数据库,数据暂存于data/目录)
二、核心代码实现(关键模块解析)
(一)HTML 表单与交互(index.html)
<!-- 名片信息录入表单 -->
<form id="cardForm" enctype="multipart/form-data">
    <input type="file" id="avatar" accept="image/jpeg,image/png" />
    <input type="text" placeholder="姓名" id="name" required />
    <input type="text" placeholder="职位" id="position" />
    <input type="text" placeholder="电话" id="phone" />
    <input type="email" placeholder="邮箱" id="email" />
    <textarea placeholder="个人介绍" id="intro" rows="3"></textarea>

    <!-- 模板选择 -->
    <select id="template">
        <option value="template1">模板1(简约商务)</option>
        <option value="template2">模板2(创意留白)</option>
        <option value="template3">模板3(科技感)</option>
    </select>

    <button type="button">生成名片</button>
</form>

<!-- 实时预览区域 -->
<div id="preview" style="min-height: 300px;"></div>

(二)JavaScript 交互逻辑(script.js)
function generateCard() {
    // 收集表单数据
    const formData = new FormData(document.getElementById('cardForm'));
    const template = document.getElementById('template').value;

    // 发起AJAX请求至PHP处理
    const xhr = new XMLHttpRequest();
    xhr.open('POST', 'generate.php');
    xhr.onload = function() {
        if (xhr.status === 200) {
            // 生成预览图片
            const img = new Image();
            img.src = xhr.responseText;
            document.getElementById('preview').innerHTML = '';
            document.getElementById('preview').appendChild(img);

            // 生成下载链接
            const a = document.createElement('a');
            a.href = xhr.responseText;
            a.download = `名片_${new Date().getTime()}.png`;
            a.click();
        }
    };
    xhr.send(formData);
}

(三)PHP 图片生成核心(generate.php)
<?php
header('Content-Type: text/plain');

// 初始化画布(标准名片尺寸:90x55mm,300dpi)
$width = 540; $height = 330; // 像素(90mm*300dpi=2700px,但此处缩小5倍便于浏览器预览)
$image = imagecreatetruecolor($width, $height);
$background = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $background);

// 处理头像上传
if ($_FILES['avatar']['error'] === UPLOAD_ERR_OK) {
    $avatar = imagecreatefromjpeg($_FILES['avatar']['tmp_name']);
    imagecopyresized($image, $avatar, 20, 20, 0, 0, 100, 100, imagesx($avatar), imagesy($avatar));
}

// 文字绘制(根据模板加载不同样式)
$template = $_POST['template'];
$fontPath = 'fonts/NotoSansCJK-Regular.otf'; // 需自行下载字体文件

if ($template === 'template1') {
    // 简约商务模板样式
    imagettftext($image, 20, 0, 150, 60, 0x333333, $fontPath, $_POST['name']);
    imagettftext($image, 14, 0, 150, 90, 0x666666, $fontPath, $_POST['position']);
    // 联系方式
    imagettftext($image, 12, 0, 150, 120, 0x999999, $fontPath, $_POST['phone']);
    imagettftext($image, 12, 0, 150, 140, 0x999999, $fontPath, $_POST['email']);
    // 个人介绍
    imagettftext($image, 12, 0, 20, 200, 0x666666, $fontPath, $_POST['intro']);
}

// 生成PNG并输出Base64
ob_start();
imagepng($image);
$imageData = base64_encode(ob_get_clean());
imagedestroy($image);

echo "data:image/png;base64," . $imageData;
?>

三、目录结构与文件说明
├─ index.html          # 前端主页面
├─ generate.php        # 图片生成接口(PHP核心)
├─ script.js           # 前端交互逻辑
├─ style.css           # 基础样式文件(可自定义)
├─ fonts/              # 字体文件目录(需放入NotoSans等字体)
├─ data/               # 历史记录存储目录(可选JSON文件)
└─ templates/          # 模板配置目录(可扩展更多样式)
    ├─ template1.css   # 模板1样式文件
    ├─ template2.css   # 模板2样式文件
    └─ template3.css   # 模板3样式文件

四、部署与使用说明
(一)环境准备
  • 确保服务器支持 PHP 7.0 + 并启用 GD 库(php -m | grep gd检查)
  • 下载中文字体(如思源黑体)放入fonts/目录
  • 可直接通过 XAMPP/MAMP 等本地环境运行,无需域名绑定
(二)使用流程
  • 用户上传头像并填写信息
  • 选择预设模板或自定义 CSS 样式(修改style.css)
  • 点击生成,自动下载 PNG 图片并在页面预览
  • 历史记录可通过修改 PHP 代码实现本地 JSON 存储(示例未包含,需自行扩展)
(三)样式自定义
/* 修改style.css实现个性化样式 */
#preview img {
    max-width: 300px; /* 调整预览尺寸 */
    box-shadow: 0 2px 5px rgba(0,0,0,0.1); /* 添加阴影效果 */
}

/* 模板1样式调整 */
.template1 .name {
    font-size: 24px;
    color: #2c3e50;
    font-weight: bold;
}

五、功能扩展建议
(一)进阶功能开发
  • 多模板管理:在templates/目录新增 JSON 配置文件,实现模板参数化管理
  • 数据持久化:增加本地 JSON 文件存储历史生成记录(示例代码可参考):
// 保存历史记录(在generate.php中添加)
$history = json_decode(file_get_contents('data/history.json'), true) ?: [];
$history[] = [
    'time' => time(),
    'name' => $_POST['name'],
    'image' => $imageData
];
file_put_contents('data/history.json', json_encode($history));

  • 二维码生成:集成 PHP QR Code 库,支持生成联系方式二维码
(二)安全优化
  • 头像上传添加文件类型校验:
// 在前端限制文件类型
document.getElementById('avatar').addEventListener('change', function(e) {
    const file = e.target.files[0];
    if (!file.type.startsWith('image/')) {
        alert('请上传图片文件');
        this.value = null;
    }
});

  • PHP 端添加文件大小限制(示例限制 2MB):
if ($_FILES['avatar']['size'] > 2 * 1024 * 1024) {
    die('头像文件过大');
}

六、常见问题解决方案
(一)头像无法显示
  • 检查generate.php中头像处理代码,确保 GD 库支持 JPEG/PNG 格式
  • 确认上传文件路径正确,可通过var_dump($_FILES)调试
(二)中文字体显示乱码
  • 确保fonts/目录存在有效中文字体文件
  • 在 PHP 绘制文字时指定正确的字体路径:
$fontPath = __DIR__ . '/fonts/NotoSansCJK-Regular.otf';

(三)生成图片模糊
  • 调整画布尺寸为实际打印尺寸(如 90mm*55mm@300dpi 对应 2700x1650 像素)
  • 优化图片压缩参数:
imagepng($image, null, 9); // 0-9压缩级别,9为最高压缩

通过以上源码方案,可快速搭建一个完全本地化的个人名片生成系统,支持头像上传、多模板切换及个性化信息录入。用户无需依赖第三方接口,所有数据均在本地处理,确保隐私安全与长期可用。如需扩展更多模板或功能,只需修改对应的 HTML/CSS/PHP 代码即可,非常适合个人用户或小型团队使用。
本地个性化个人名片生成源码(无第三方接口版)  7853 无忧技术吧www.whct.net
[color=rgba(0, 0, 0, 0.85)]https://www.123865.com/s/vYGlVv-NAApH?提取码:t8zM



无忧技术吧-免责声明:
1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关。一切关于该内容及资源商业行为与www.whct.net无关。
2、本站提供的一切资源内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。
3、本站信息来自第三方用户,非本站自制,版权归原作者享有,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。
4、注册会员通过任何手段和方法针对论坛进行破坏,我们有权对其行为作出处理。并保留进一步追究其责任的权利。
5、无忧技术吧(www.whct.net)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。无忧技术吧不承担任何因为技术滥用所产生的连带责任。无忧技术吧内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或QQ与我们联系处理。
6、如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵犯你版权的,请邮件与我们联系删除(邮箱:whctwlgzs@foxmail.com),本站将立即改正。
联系方式:
站长邮箱:whctwlgzs@foxmail.com
站长QQ:4040068
无忧论坛关注编程安全和移动安全、程序调试与病毒分析的前沿领域,平台本身资源丰富,作为一个资源平台,为程序员及广大编程爱好者提供了一个氛围良好的交流与合作空间。
雅调清歌 (帅逼1057)

积分信息:
无忧币:45
交易币:4
贡献:0

发表于 5 天前 | 显示全部楼层
支持一下本地个性化个人名片生成源码(无第三方接口版)  4424 无忧技术吧www.whct.net无忧技术吧
无忧论坛关注编程安全和移动安全、程序调试与病毒分析的前沿领域,平台本身资源丰富,作为一个资源平台,为程序员及广大编程爱好者提供了一个氛围良好的交流与合作空间。
回复

使用道具 举报

雅情逸逸致 (帅逼1201)

积分信息:
无忧币:49
交易币:5
贡献:0

发表于 5 天前 | 显示全部楼层
支持一下本地个性化个人名片生成源码(无第三方接口版)  4659 无忧技术吧www.whct.net无忧技术吧
无忧论坛关注编程安全和移动安全、程序调试与病毒分析的前沿领域,平台本身资源丰富,作为一个资源平台,为程序员及广大编程爱好者提供了一个氛围良好的交流与合作空间。
回复

使用道具 举报

才情逸世间 (帅逼1147)

积分信息:
无忧币:45
交易币:3
贡献:0

发表于 5 天前 | 显示全部楼层
谢谢楼主,共同发展无忧技术吧
无忧论坛关注编程安全和移动安全、程序调试与病毒分析的前沿领域,平台本身资源丰富,作为一个资源平台,为程序员及广大编程爱好者提供了一个氛围良好的交流与合作空间。
回复

使用道具 举报

书魂墨魄 (帅逼1077)

积分信息:
无忧币:50
交易币:4
贡献:0

发表于 5 天前 | 显示全部楼层
无忧技术吧 我是来刷分的,嘿嘿
无忧论坛关注编程安全和移动安全、程序调试与病毒分析的前沿领域,平台本身资源丰富,作为一个资源平台,为程序员及广大编程爱好者提供了一个氛围良好的交流与合作空间。
回复

使用道具 举报

竹影清风 (帅逼975)

积分信息:
无忧币:50
交易币:2
贡献:0

发表于 5 天前 | 显示全部楼层
不知该说些什么。。。。。无忧技术吧 。就是谢谢
无忧论坛关注编程安全和移动安全、程序调试与病毒分析的前沿领域,平台本身资源丰富,作为一个资源平台,为程序员及广大编程爱好者提供了一个氛围良好的交流与合作空间。
回复

使用道具 举报

雅意逸时光 (帅逼1169)

积分信息:
无忧币:49
交易币:3
贡献:0

发表于 5 天前 | 显示全部楼层
无忧技术吧 帮帮顶顶!!
无忧论坛关注编程安全和移动安全、程序调试与病毒分析的前沿领域,平台本身资源丰富,作为一个资源平台,为程序员及广大编程爱好者提供了一个氛围良好的交流与合作空间。
回复

使用道具 举报

才情逸逸态 (帅逼1187)

积分信息:
无忧币:40
交易币:4
贡献:0

发表于 5 天前 | 显示全部楼层
无忧技术吧 写的真的很不错
无忧论坛关注编程安全和移动安全、程序调试与病毒分析的前沿领域,平台本身资源丰富,作为一个资源平台,为程序员及广大编程爱好者提供了一个氛围良好的交流与合作空间。
回复

使用道具 举报

雅情逸梦香 (帅逼1161)

积分信息:
无忧币:54
交易币:3
贡献:0

发表于 5 天前 | 显示全部楼层
无忧技术吧 好好 学习了 确实不错
无忧论坛关注编程安全和移动安全、程序调试与病毒分析的前沿领域,平台本身资源丰富,作为一个资源平台,为程序员及广大编程爱好者提供了一个氛围良好的交流与合作空间。
回复

使用道具 举报

艺海逸逸风 (帅逼1202)

积分信息:
无忧币:41
交易币:2
贡献:0

发表于 5 天前 | 显示全部楼层
无忧技术吧 好好 学习了 确实不错
无忧论坛关注编程安全和移动安全、程序调试与病毒分析的前沿领域,平台本身资源丰富,作为一个资源平台,为程序员及广大编程爱好者提供了一个氛围良好的交流与合作空间。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

×本站发帖友情提示
1、注册用户在本社区发表、转载的任何作品仅代表其个人观点,不代表本社区认同其观点。
2、如果存在违反国家相关法律、法规、条例的行为,我们有权在不经作者准许的情况下删除其在本论坛所发表的文章。
3、所有网友不要盗用有明确版权要求的作品,转贴请注明来源,否则文责自负。
4、本社区保护注册用户个人资料,但是在自身原因导致个人资料泄露、丢失、被盗或篡改,本论坛概不负责,也不承担相应法律责任。

站长推荐 关闭


官方交流群:805881393

官方交流群:805881393


查看

关于烛光| 支付宝站| 广告服务| 法律声明| 隐私保护| 联系我们| Archiver| | |网站地图 帮助中心

鄂公网安备42011502001700号

工业和信息化部备案:鄂ICP备2024050280号-2 广告服务/联系QQ: 4040068 投诉受理QQ: 4040068 

技术支持:Discuz!  Copyright © 2009 - 2010 联系邮箱:whctwlgzs@foxmail.com 版权所有 无忧技术吧

GMT+8, 2025-5-24 16:39 , Processed in 0.183131 second(s), 56 queries .

请输入你要搜索的关键字关键字: 百度 google 一搜 搜狐