基于PHP + DeepSeek接口的图片AI生成网站系统源码,前端HTML + Vue.js + css技术(附带源代码 + 演示示例)

作品, 技术, 资源  ·  2025年04月16日

在这里插入图片描述

若你想用HTML+JS+PHP和DeepSeek的API来做一个根据文字生成图片的网站。首先,需要确认各个技术部分如何配合。前端用HTML和jQuery处理用户输入和显示结果,后端用PHP调用API,然后返回生成的图片链接。

如果你对前端比较熟悉,但后端和API调用可能不太了解。需要分步骤解释,先做前端界面,再处理后端逻辑。可能要注意跨域问题,所以用PHP作为中间层,而不是直接在前端调用API,这样可以隐藏API密钥,更安全。

需要获取DeepSeek的API密钥,如果你不知道如何申请,我需要提醒你去官网注册账号。然后,前端用jQuery的Ajax发送用户输入到PHP后端,PHP再用curl请求DeepSeek的API,获取图片URL后返回给前端显示。

可能要考虑错误处理,比如API调用失败的情况,给用户提示。还有加载状态,比如生成图片时显示“生成中...”。界面设计要简洁,输入框和按钮,下面显示图片。

另外需要处理响应格式,确保PHP正确解析API返回的数据,提取图片URL。用户可能需要调整参数,比如图片尺寸,所以可以在HTML里加个下拉菜单选择尺寸,虽然示例里没有,但用户可能后续需要扩展。

最后,测试整个流程,确保前端发送请求,后端正确处理,并返回图片。提醒用户替换API密钥,部署到支持PHP的服务器。最后还需要考虑性能,比如限制请求频率,或者添加加载动画提升用户体验。



话不多说,先看演示示例:

https://h5.sumer.work/deepseek/image.html



演示截图:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述



暗黑风格:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述



以下是详细代码:



HTML端:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>AI图片生成器</title>
    <link rel="stylesheet" href="styles.css">
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <script src="script.js"></script>
</head>
<body>
    <div class="container">
        <h1>AI图片生成器</h1>
        <textarea id="description" placeholder="请输入图片描述文字..." rows="4" cols="50"></textarea>
        <div class="options">
            <label for="style">图片风格:</label>
            <select id="style">
                <!-- 预设风格选项,如二次元、素描等,可按需添加 -->
                <option value="anime">二次元</option>
                <option value="sketch">素描</option>
                <option value="3d">3D</option>
                <!-- 更多风格... -->
            </select>
            <label for="ratio">图片尺寸比例:</label>
            <select id="ratio">
                <option value="3:4">3:4</option>
                <option value="16:9">16:9</option>
                <option value="1:1">正方形</option>
                <!-- 更多比例... -->
            </select>
        </div>
        <button id="generateBtn">生成图片</button>
        <div id="loading" class="loading">生成中...</div>
        <div id="result" class="result"></div>
    </div>
</body>
</html>



CSS端:

body {
    font-family: Arial, sans-serif;
    background-color: #f4f4f4;
    margin: 0;
    padding: 20px;
}

.container {
    max-width: 600px;
    margin: 0 auto;
    background: #fff;
    padding: 20px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}

textarea {
    width: 100%;
    padding: 10px;
    margin-bottom: 10px;
    border: 1px solid #ccc;
    border-radius: 4px;
}

.options {
    margin-bottom: 10px;
}

label {
    margin-right: 10px;
}

select {
    padding: 5px;
    border: 1px solid #ccc;
    border-radius: 4px;
}

button {
    padding: 10px 20px;
    background-color: #007bff;
    color: #fff;
    border: none;
    border-radius: 4px;
    cursor: pointer;
}

button:hover {
    background-color: #0056b3;
}

.loading {
    display: none;
    color: #666;
    margin-top: 10px;
}

.result {
    display: none;
    margin-top: 20px;
    text-align: center;
}

.result img {
    max-width: 100%;
    height: auto;
}



JS端:

$(document).ready(function() {
    $('#generateBtn').click(function() {
        var description = $('#description').val();
        var style = $('#style').val();
        var ratio = $('#ratio').val();

        if (!description) {
            alert('请输入图片描述文字!');
            return;
        }

        $('#loading').show();
        $('.result').hide();

        $.ajax({
            type: 'POST',
            url: 'generate.php',
            data: {
                description: description,
                style: style,
                ratio: ratio
            },
            success: function(response) {
                if (response.success) {
                    $('#result').html('<img src="' + response.data.url + '" alt="Generated Image">');
                    $('.result').show();
                } else {
                    alert('生成图片失败:' + response.error);
                }
            },
            error: function() {
                alert('请求失败,请稍后再试!');
            },
            complete: function() {
                $('#loading').hide();
            }
        });
    });
});



PHP端:

<?php
header('Content-Type: application/json');

// 替换为您的DeepSeek API密钥
$apiKey = 'YOUR_DEEPSEEK_API_KEY';

$description = $_POST['description'] ?? '';
$style = $_POST['style'] ?? 'default'; // 默认风格
$ratio = $_POST['ratio'] ?? '3:4'; // 默认比例

if (empty($description)) {
    echo json_encode(['success' => false, 'error' => '描述文字不能为空!']);
    exit;
}

$data = 
    'prompt' => $description,
    'style' => $style, // 假设DeepSeek API支持该参数,具体需参考API文档
    'size' => $ratio, // 假设DeepSeek API支持该参数或需转换为具体尺寸,如'1024x768'
    // 其他可能的参数,如'n' => 1(生成数量)等,根据API文档添加
];

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.deepseek.com/v1/images/generations'); // 假设的API端点,需替换为实际端点
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, 
    'Content-Type: application/json',
    'Authorization: Bearer ' . $apiKey
]);

$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

if ($httpCode !== 200) {
    echo json_encode(['success' => false, 'error' => 'API请求失败!']);
    exit;
}

$result = json_decode($response, true);

// 假设API返回的数据结构中有'data.url'作为生成的图片URL
echo json_encode([
    'success' => true,
    'data' => 
        'url' => $result['data']['url'] ?? '' // 根据实际API返回的数据结构修改
    ]
]);
?>


注意事项:

API文档‌:确保您已阅读并理解了DeepSeek API的文档,以便正确设置请求参数和解析响应数据。
API密钥‌:将YOUR_DEEPSEEK_API_KEY替换为您的实际API密钥。
错误处理‌:根据需要添加更多的错误处理逻辑,以处理可能的异常情况。
安全性‌:考虑在生产环境中添加额外的安全措施,如输入验证、API请求限制等。‌
样式调整‌:根据需要调整CSS样式以匹配您的网站设计。‌
跨域问题‌:如果前端和后端部署在不同的域上,可能需要处理跨域资源共享(CORS)问题。


源码下载:

下载地址:点击下载



示例演示:

演示地址:点击预览


评论
L
O
A
D
I
N
G
仿支付宝、仿微信APP免费下载,下载地址:点击查看,演示视频:点击查看