当前位置: 首页 > news >正文

DeepSeek生成HTML5图片拼接工具

让DeepSeek生成一个HTML5图片拼接工具,给的提示词如下
提示词(prompt)
帮我生成一个可以将两张图片拼接到一起的程序 支持横向拼接和竖向拼接,可以用html5实现功能吗?
DeepSeek大概20秒左右就做好了,而且像这么简单的功能的话也没必要用python或者其他编程语言去生成,不然的话还得去配置运行环境,用HTML5直接用浏览器打开就可以了,最重要的是可以直接在DeepSeek生成的代码右边就可以直接点击运行了,连自己建一个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>HTML5 图片拼接工具</title><style>body {font-family: Arial, sans-serif;max-width: 900px;margin: 0 auto;padding: 20px;line-height: 1.6;}h1 {color: #333;text-align: center;}.container {display: flex;flex-direction: column;gap: 20px;}.controls {display: flex;flex-wrap: wrap;gap: 15px;padding: 15px;background: #f5f5f5;border-radius: 5px;}.control-group {display: flex;flex-direction: column;gap: 5px;}button {padding: 8px 15px;background: #4CAF50;color: white;border: none;border-radius: 4px;cursor: pointer;font-size: 16px;}button:hover {background: #45a049;}select, input {padding: 8px;border-radius: 4px;border: 1px solid #ddd;}.preview {display: flex;flex-direction: column;align-items: center;gap: 15px;}#imageContainer {display: flex;flex-wrap: wrap;gap: 10px;margin-bottom: 15px;}.thumbnail {max-width: 150px;max-height: 150px;border: 1px solid #ddd;position: relative;}.thumbnail img {max-width: 100%;max-height: 100%;}.remove-btn {position: absolute;top: 0;right: 0;background: red;color: white;border: none;border-radius: 50%;width: 20px;height: 20px;font-size: 12px;cursor: pointer;}#resultCanvas {max-width: 100%;border: 1px solid #ddd;margin-top: 15px;display: none;}.download-btn {background: #2196F3;display: none;}.download-btn:hover {background: #0b7dda;}</style>
</head>
<body><h1>HTML5 图片拼接工具</h1><div class="container"><div class="controls"><div class="control-group"><label for="imageInput">选择图片:</label><input type="file" id="imageInput" accept="image/*" multiple></div><div class="control-group"><label for="modeSelect">拼接方式:</label><select id="modeSelect"><option value="horizontal">横向拼接</option><option value="vertical">竖向拼接</option></select></div><div class="control-group"><label for="spacingInput">图片间距:</label><input type="number" id="spacingInput" value="0" min="0" max="100"></div><div class="control-group"><label for="bgColor">背景颜色:</label><input type="color" id="bgColor" value="#ffffff"></div><button id="processBtn">拼接图片</button></div><div class="preview"><div id="imageContainer"></div><canvas id="resultCanvas"></canvas><button id="downloadBtn" class="download-btn">下载拼接结果</button></div></div><script>document.addEventListener('DOMContentLoaded', function() {const imageInput = document.getElementById('imageInput');const modeSelect = document.getElementById('modeSelect');const spacingInput = document.getElementById('spacingInput');const bgColor = document.getElementById('bgColor');const processBtn = document.getElementById('processBtn');const imageContainer = document.getElementById('imageContainer');const resultCanvas = document.getElementById('resultCanvas');const downloadBtn = document.getElementById('downloadBtn');let images = [];// 处理图片选择imageInput.addEventListener('change', function(e) {const files = e.target.files;if (files.length === 0) return;images = [];imageContainer.innerHTML = '';for (let i = 0; i < files.length; i++) {const file = files[i];if (!file.type.match('image.*')) continue;const reader = new FileReader();reader.onload = function(e) {const img = new Image();img.onload = function() {images.push(img);addThumbnail(img, images.length - 1);};img.src = e.target.result;};reader.readAsDataURL(file);}});// 添加缩略图function addThumbnail(img, index) {const thumbnailDiv = document.createElement('div');thumbnailDiv.className = 'thumbnail';const thumbnailImg = document.createElement('img');thumbnailImg.src = img.src;const removeBtn = document.createElement('button');removeBtn.className = 'remove-btn';removeBtn.innerHTML = '×';removeBtn.onclick = function() {images.splice(index, 1);imageContainer.removeChild(thumbnailDiv);// 重新渲染所有缩略图以更新索引imageContainer.innerHTML = '';images.forEach((img, i) => addThumbnail(img, i));};thumbnailDiv.appendChild(thumbnailImg);thumbnailDiv.appendChild(removeBtn);imageContainer.appendChild(thumbnailDiv);}// 处理拼接按钮点击processBtn.addEventListener('click', function() {if (images.length < 2) {alert('请至少选择两张图片');return;}const mode = modeSelect.value;const spacing = parseInt(spacingInput.value);const backgroundColor = bgColor.value;concatenateImages(images, mode, spacing, backgroundColor);});// 拼接图片function concatenateImages(images, mode, spacing, bgColor) {let totalWidth = 0;let totalHeight = 0;if (mode === 'horizontal') {// 横向拼接:总宽度是所有图片宽度之和 + 间距,高度取最大高度totalWidth = images.reduce((sum, img) => sum + img.width, 0) + (images.length - 1) * spacing;totalHeight = Math.max(...images.map(img => img.height));} else {// 竖向拼接:总高度是所有图片高度之和 + 间距,宽度取最大宽度totalHeight = images.reduce((sum, img) => sum + img.height, 0) + (images.length - 1) * spacing;totalWidth = Math.max(...images.map(img => img.width));}// 设置canvas尺寸resultCanvas.width = totalWidth;resultCanvas.height = totalHeight;const ctx = resultCanvas.getContext('2d');// 填充背景色ctx.fillStyle = bgColor;ctx.fillRect(0, 0, totalWidth, totalHeight);let x = 0;let y = 0;for (const img of images) {ctx.drawImage(img, x, y);if (mode === 'horizontal') {x += img.width + spacing;} else {y += img.height + spacing;}}// 显示结果和下载按钮resultCanvas.style.display = 'block';downloadBtn.style.display = 'inline-block';}// 处理下载按钮点击downloadBtn.addEventListener('click', function() {const link = document.createElement('a');link.download = '拼接结果.png';link.href = resultCanvas.toDataURL('image/png');link.click();});});</script>
</body>
</html>

相关文章:

  • 【RTP】基于mediasoup的RtpPacket的H.264打包、解包和demo 2:含扩展
  • 课程目录:腾讯混元3D × Unity3D全流程开发
  • 【Memory协议栈】Autosar架构下如何测量Fee的切页时间
  • flutter环境变量记录
  • 基于FPGA的白噪声信号发生器verilog实现,包含testbench和开发板硬件测试
  • 项目拓展-Spring实现策略类统一管理
  • SpringAI1.0下的MCP的异步请求和同步请求的区别
  • 领域驱动设计(DDD)【3】之事件风暴
  • 自定义OceanBase集群安装并使用OCP接管集群
  • K8s初始化容器与边车容器比对
  • HTTPS的加密方式介绍
  • 从语义到推荐:大语言模型(LLM)如何驱动智能选车系统?
  • 蚂蚁百宝箱快速创建智能体AI小程序
  • 【入门级-基础知识与编程环境:计算机的基本构成 (CPU、内存、I/O设备等)】
  • 【算法一周目】分而治之,归并如风:算法中的美学与哲理
  • IEC61850 一致性测试中的 UCA 测试
  • AI大模型学习之基础数学:高斯分布-AI大模型概率统计的基石
  • `toRaw` 与 `markRaw`:Vue3 响应式系统的细粒度控制
  • ad24智能pdf输出的装配图没有四个边角那里的圆孔
  • 学习C++、QT---03(C++的输入输出、C++的基本数据类型介绍)
  • 响应式网站用什么软件做效果/网络运营推广具体做什么工作
  • 深圳深圳网站开发/企业营销策略分析论文
  • 计算机网站开发论文参考文献/营销型企业网站建设步骤
  • 网站如何在360做提交/seo网络推广经理招聘
  • 机械厂做网站/我是做推广的怎么找客户
  • 建网站 多少钱/自己如何优化网站排名