3分钟基于Chat GPT完成工作中的小程序

news2025/2/24 13:09:16

1. 写在前面

GPT自从去年爆发以来,各大公司在大模型方面持续发力,行业大模型也如雨后春笋一般发展迅速,日常工作中比较多的应用场景还是问答模式,作为写程序的辅助也偶尔使用。今天看到一篇翻译的博客“我用 ChatGPT,在 120 秒内做了一个飞机观测器!”_CSDN资讯的博客-CSDN博客

博客内容大致:Chat GPT写一个HTML,用户给定自己的坐标,可以实时接收飞过头顶的飞机信息。PlaneSpotter - Flight Notifier

既然可以这样,那......发挥想象

本文利用免费的GPT 3.5

2. 抠图小程序

工作中做PPT经常需要透明底的图片,所以也收藏了一些图片处理网站,但是使用的时候,要么扫码关注公众号、要么注册用户......神烦

当然也有不错的去背景网站,例如Remove Background from Image, Free HD, No Signup - Pixian.AI

但是为什么不利用Chat GPT直接写一个呢?说干就干

提问:将图片白底变成透明底的程序,支持上传图片、下载图片,以单个HTML完成编程

回答:在HTML中,您可以使用HTML5的<input>元素允许用户上传图像,然后使用HTML5 <canvas> 元素和JavaScript来处理图像,将白色背景变为透明。然后,您可以提供下载链接以下载处理后的图像。以下是一个完整的示例:

<!DOCTYPE html>
<html>
<head>
    <title>图片白底变透明</title>
</head>
<body>
    <h1>图片白底变透明</h1>
    
    <!-- 上传图像的输入 -->
    <input type="file" id="imageInput" accept="image/*" />
    
    <!-- 用于显示处理后的图像 -->
    <canvas id="outputCanvas" style="display: none;"></canvas>
    
    <!-- 下载按钮 -->
    <a id="downloadLink" style="display: none;" download="transparent.png">
        下载处理后的图像
    </a>
    
    <script>
        // 监听文件上传
        const imageInput = document.getElementById('imageInput');
        imageInput.addEventListener('change', function() {
            const file = imageInput.files[0];
            
            if (file) {
                const reader = new FileReader();
                reader.onload = function(e) {
                    const img = new Image();
                    img.onload = function() {
                        // 创建Canvas用于图像处理
                        const canvas = document.getElementById('outputCanvas');
                        canvas.width = img.width;
                        canvas.height = img.height;
                        const ctx = canvas.getContext('2d');
                        
                        // 清空Canvas
                        ctx.clearRect(0, 0, canvas.width, canvas.height);
                        
                        // 在Canvas上绘制图像
                        ctx.drawImage(img, 0, 0);
                        
                        // 获取图像数据
                        const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
                        
                        // 处理图像数据:将白色背景变为透明
                        for (let i = 0; i < imageData.data.length; i += 4) {
                            // 检查像素是否为白色
                            if (imageData.data[i] >= 240 && imageData.data[i + 1] >= 240 && imageData.data[i + 2] >= 240) {
                                // 将白色像素的alpha通道设置为0,即透明
                                imageData.data[i + 3] = 0;
                            }
                        }
                        
                        // 在Canvas上绘制处理后的图像数据
                        ctx.putImageData(imageData, 0, 0);
                        
                        // 显示下载按钮
                        const downloadLink = document.getElementById('downloadLink');
                        downloadLink.href = canvas.toDataURL('image/png');
                        downloadLink.style.display = 'block';
                    };
                    img.src = e.target.result;
                };
                reader.readAsDataURL(file);
            }
        });
    </script>
</body>
</html>

这个HTML页面允许用户上传图像,然后将白色背景变为透明,并提供了下载链接以下载处理后的图像。处理过程是通过JavaScript和Canvas API完成的。

步骤:代码复制并保存到HTML文件,打开即用

选择白底图片,试一下效果。原图与效果图对比

因为飞机有阴影,效果一般,再试一次

基本完成了白底--透明底小程序开发,GPT3.5只用了20s就生成了一个可以直接使用的HTML页面程序,赞!

3. 经纬度转换

在GIS软件开发过程中,会经常遇到经纬度格式转换,互联网是有一些在线转换的页面,也很方便,今天不妨再用20s测试一下GPT3.5

提问:完成经纬度格式转换的程序,包含经度、纬度两种格式的输入输出,以HTML单独页面程序完成

回答:以下是一个HTML页面程序,用于将经度和纬度之间的格式进行转换。用户可以输入经度和纬度,并选择要从哪种格式转换到另一种格式。页面会在用户进行转换时显示结果。请注意,这个示例支持将度分秒(DMS)格式转换为十进制度(DD)格式,以及将十进制度格式转换为度分秒格式。

<!DOCTYPE html>
<html>
<head>
    <title>经纬度格式转换</title>
</head>
<body>
    <h1>经纬度格式转换</h1>
    
    <label for="inputLatitude">输入纬度:</label>
    <input type="text" id="inputLatitude" placeholder="例如:40.7128或40° 42' 46'' N" />
    
    <label for="inputLongitude">输入经度:</label>
    <input type="text" id="inputLongitude" placeholder="例如:-74.0060或74° 0' 21'' W" />
    
    <label for="formatSelect">选择格式:</label>
    <select id="formatSelect">
        <option value="ddToDMS">十进制度 (DD) 到 度分秒 (DMS)</option>
        <option value="dmsToDD">度分秒 (DMS) 到 十进制度 (DD)</option>
    </select>
    
    <button id="convertButton">转换</button>
    
    <h2>结果:</h2>
    <p id="result"></p>
    
    <script>
        document.getElementById('convertButton').addEventListener('click', function() {
            const inputLatitude = document.getElementById('inputLatitude').value;
            const inputLongitude = document.getElementById('inputLongitude').value;
            const formatSelect = document.getElementById('formatSelect').value;
            const resultElement = document.getElementById('result');
            
            if (formatSelect === 'ddToDMS') {
                const latitudeDMS = ddToDMS(inputLatitude, 'latitude');
                const longitudeDMS = ddToDMS(inputLongitude, 'longitude');
                resultElement.innerHTML = `纬度 (DMS): ${latitudeDMS}<br>经度 (DMS): ${longitudeDMS}`;
            } else if (formatSelect === 'dmsToDD') {
                const latitudeDD = dmsToDD(inputLatitude, 'latitude');
                const longitudeDD = dmsToDD(inputLongitude, 'longitude');
                resultElement.innerHTML = `纬度 (DD): ${latitudeDD}<br>经度 (DD): ${longitudeDD}`;
            }
        });
        
        // 将十进制度 (DD) 转换为度分秒 (DMS)
        function ddToDMS(dd, type) {
            const d = parseInt(dd);
            const m = parseInt((dd - d) * 60);
            const s = ((dd - d - m / 60) * 3600).toFixed(2);
            const direction = (type === 'latitude') ? (dd >= 0 ? 'N' : 'S') : (dd >= 0 ? 'E' : 'W');
            return `${Math.abs(d)}° ${m}' ${s}'' ${direction}`;
        }
        
        // 将度分秒 (DMS) 转换为十进制度 (DD)
        function dmsToDD(dms, type) {
            const regex = /(\d+)°\s?(\d+)'?\s?(\d+(\.\d+)?)''?\s?([NSEW])?/i;
            const matches = regex.exec(dms);
            
            if (matches) {
                const degrees = parseFloat(matches[1]);
                const minutes = parseFloat(matches[2]);
                const seconds = parseFloat(matches[3]);
                const direction = (type === 'latitude') ? (matches[5] === 'S' ? -1 : 1) : (matches[5] === 'W' ? -1 : 1);
                return (degrees + minutes / 60 + seconds / 3600) * direction;
            }
            
            return '无效输入';
        }
    </script>
</body>
</html>

这个页面允许用户输入纬度和经度,选择要从哪种格式转换到另一种格式,然后点击转换按钮以查看结果。支持的格式包括十进制度 (DD) 和度分秒 (DMS)。根据用户的选择,页面将显示转换后的结果。

步骤:代码复制并保存到HTML文件,打开即用

可以输入两种格式的经纬度,简直完美!

4. 写在后面

GPT的确极大地方便了我们的生活,以后更需要的是人类的想象力。以前很多小伙伴写这些方便的小程序兼职赚钱,没有被同行干掉,被新生事物GPT干掉了,正如之前的方便面被外卖干掉吧!谁还有好的思路的小程序,也可以一起试试。

另外,Chat GPT生成的程序自己也可以进行调优、调参处理,本文没有进行任何代码修改。

感兴趣的小伙伴也可以试试俄罗斯方块等小游戏

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1063962.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python通过socket 搭建极简web服务器

环境&#xff1a;win11、python 3.9.2 背景&#xff1a;python的web框架众多&#xff0c;常见的如django、flask、tornado等&#xff0c;其底层是什么还是有些许的疑问&#xff0c;所以查找相关资料&#xff0c;实现浏览器访问&#xff0c;并返回相关信息 时间&#xff1a;20…

期权定价模型系列【8】:选择者期权(chooser option)定价模型

期权定价模型系列第8篇文章 1.前言 抉择型期权又称为随心所欲期权&#xff0c;是一种与时间相关的期权。这种期权的持有 人有权在到期日之前的某一段时期&#xff0c;决定该选择权为买权或卖权。因此&#xff0c;在决定的时间点&#xff0c;抉择型期权的价值应该为&#xff1a;…

命令解释器-Shell

目录 1. 概述 1.1. 概念 1.2. 分类&#xff1a; 1.3. type 命令 1.4.命令执行原理 2. Linux 中的特殊符号 3. 命令别名 3.1. 查看设置的别名 3.2. 常用的别名 3.3. 删除别名 3.6. 注意&#xff08;alias永久化&#xff09;&#xff1a; 4. history 命令历史 例&a…

已解决:win的资源管理器右键菜单被折叠无法显示全内容?教你解决

win11在样式上整挺好的&#xff0c;那种圆润感是win10没法比拟的&#xff0c;但是有一个很严重的诟病&#xff0c;就是右键菜单的折叠&#xff0c;这个东西是资源管理器新增的一个功能&#xff0c;如果之前是win右键的重度用户&#xff0c;那么对于这种需要多点一步展开的操作&…

解决报错: require is not defined in ES module scope

用node启动mjs文件报错&#xff1a;require is not defined in ES module scope 现象如下&#xff1a; 原因&#xff1a; 文件后缀是mjs, 被识别为es模块&#xff0c;但是node默认是commonjs格式&#xff0c;不支持也不能识别es模块。 解决办法&#xff1a;把文件后缀从.mjs改…

【进阶C语言】排序函数(qsort)与模拟实现(回调函数的实例)

本章大致内容目录&#xff1a; 1.认识回调函数 2.排序函数qsort 3.模拟实现qsort 回调函数为C语言重要知识点&#xff0c;以函数指针为主要知识&#xff1b;下面介绍回调函数的定义、回调函数的库函数举例即库函数模拟实现。 一、回调函数 1.回调函数定义 回调函数就是一…

16哈希表-基础操作

目录 哈希表 散列思想 哈希表的实现 简单示例 开胃菜&#xff1a;LeetCode之路——242. 有效的字母异位词 分析 哈希表 英文名字为Hash table&#xff0c;散列表的英文叫“Hash Table”&#xff0c;我们平时也叫它“哈希表”或者“Hash表”。 哈希表&#xff08;Hash Ta…

vue3中使用return语句返回this.$emit(),在同一行不执行,换行后才执行,好奇怪!

今天练习TodoList任务列表案例,该案例效果如图所示&#xff1a; 此案例除了根组件App.vue&#xff0c;还有TodoList、TodoInput、TodoButton三个子组件。 因为有视频讲解&#xff0c;在制作TodoList、TodoInput时很顺利&#xff0c;只是在完成TodoButton这个组件时出了点问题…

VR开发(一)——SteamVR实现摇杆移动

一、基础环境搭建 1.AssetStore 找到SteamVR并导入&#xff1b; 2.添加一个 VR 中代表玩家自己的物体。我可以打开 Assets/SteamVR/InteractionSystem/Core 文件夹&#xff0c;将 Player 物体拖入场景&#xff1a; 二、修改手柄按钮映射集 3.windows/steamVR input&#xff…

【程序员必看】计算机网络,快速了解网络层次、常用协议和物理设备!

文章目录 0 引言1 基础知识的定义1.1 计算机网络层次1.2 网络供应商 ISP1.3 猫、路由器、交换机1.4 IP协议1.5 TCP、UDP协议1.6 HTTP、HTTPS、FTP协议1.7 Web、Web浏览器、Web服务器1.8 以太网和WLAN1.9 Socket &#xff08;网络套接字&#xff09; 2 总结 0 引言 在学习的过程…

OpenResty编译安装详解

文章目录 一、概述1、OpenResty是什么2、官方文档 二、cengos安装OpenResty1、从官网下载2、目录结构3、编译安装 一、概述 1、OpenResty是什么 OpenResty 是一个基于 Nginx 与 Lua 的高性能 Web 平台&#xff0c;其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖…

【Word】公式编辑器中连字符/减号等显示偏长/过长

问题 当公式编辑器中出现连字符的时候&#xff0c;连字符显示偏长&#xff0c;如下图所示&#xff1a; 方法 在连字符的前后加上双引号后即可解决连字符显示偏长的问题。 最终效果对比如下&#xff1a; 结语 Word的公式编辑器中&#xff0c;双引号内部的内容被当做普通…

基于FastAPI的文件上传和下载

基于FastAPI的文件上传和下载 一、前言 为了实现ASR的可视化界面&#xff0c;在各个博客中寻觅了一波找找文件上传和下载的例子&#xff0c;没有找到能完整实现这个功能的&#xff0c;有也只是有一部分&#xff08;菜菜求捞捞&#xff09;&#xff0c;看了甚是烦恼&#xff0…

DBC配置SecOC属性

关联文章:Autosar基础——车载信息安全SecOC 属性定义的规范详细介绍请参考 ①dbc属性定义 ②Vector DBC属性定义规则 文章目录 一、SecOC简介二、DBC文件中的SecOC属性三、配置SecOC属性设置SecOC的属性设置同步报文的属性设置同步请求报文的属性一、SecOC简介 在车载网络中…

怎么利用互联网赚钱,网上赚钱的7种方法

互联网的兴起改变了我们的生活方式&#xff0c;不仅让我们的世界更为便捷&#xff0c;也为我们提供了赚钱的机会。越来越多的人开始通过互联网实现财富梦想。你是否曾想过&#xff0c;如何利用互联网来赚钱呢&#xff1f;今天&#xff0c;我将为大家分享七种赚钱方法&#xff0…

数据分析篇-数据认知分析

一简介 数据认知分析&#xff0c;实际是对数据的整体结构和分布特征进行分析&#xff0c;是对整个数据外在的认识&#xff0c;也是数据分析的第一步。对于数据认知的分析&#xff0c;一般会考虑分散性、位置特性、变量的相关性等&#xff0c;一般会考虑平均数、方差、极差、峰…

算法通过村第十二关-字符串|白银笔记|经典面试题

文章目录 前言1. 反转问题1.1 反转字符串1.2 k个一组反转1.3 仅仅反转字母1.3.1 采用栈实现操作1.3.2 采用双指针实现操作 1.4 反转字符串里面的单词1.4.1 使用语言提供的方法来解决(内置API)1.4.2 如何优雅自己实现上述功能 2. 验证回文串3. 字符串中的第一个唯一字符4. 判断是…

SaaS 电商设计 (二) 全链路解决方案概述和核心业务流程梳理

一.业务目标&技术目标 业务目标:完成多业态,多渠道的数字化运营 自有业务: O2O,B2C,B2B2C,S2B2b 平台业务:POPB2c,POPB2b,POPS2B2b 1.1 自有业务 O2O:全称Online to Offline.泛指的线上线下的业务融合.这种的情况分为两种情况,第一种通过线上的数字化运营引导线上用户线下…

oCPC实践录 | oCPC转化的设计、选择、归因与成本设置(4)

读者们&#xff0c;中秋十一快乐&#xff0c;一篇文章奉上。 在上篇oCPC实践录 | oCPC转化的设计、选择、归因与成本设置&#xff08;3&#xff09;文章中我们主要讨论&#xff1a;怎么定义高价值用户&#xff0c;回传高价值用户不一定利益最大化&#xff0c;回传高ROI用户逻辑…