首页 > 其他分享 >[开源初探]screenshot-to-code:将截图转化为代码

[开源初探]screenshot-to-code:将截图转化为代码

时间:2024-03-26 12:13:30浏览次数:25  
标签:截图 code frontend screenshot -- docker backend

介绍说明

将截图转化为 HTML 代码的工具。该项目可以将屏幕截图转化为 HTML/JS/Tailwind CSS 代码,它使用 GPT-4 Vision 生成代码、DALL-E 3 生成相似的图片。

 

安装运行

为了方便演示及保持原有系统的简洁,将使用 docker 的方式来安装运行 screenshot-to-code。由于项目本身已经提供了 Dockerfile,我们直接使用即可,需要注意的是,该项目有 frontend 和 backend 两个镜像。

  • 克隆代码

git clone https://github.com/abi/screenshot-to-code.git

  • 构建 frontend

cd frontend/

docker build -t screenshot-to-code-frontend:latest -f ./Dockerfile .

docker images | grep screenshot-to-code-frontend

  • 构建 backend

cd backend/

docker build -t screenshot-to-code-backend:latest -f ./Dockerfile .

docker images | grep screenshot-to-code-backend

  • 运行 frontend

docker rm -f screenshot-to-code-frontend

docker run --name screenshot-to-code-frontend -d \
--network host \
-e VITE_WS_BACKEND_URL="ws://{your machine ip}:7001" \
screenshot-to-code-frontend:latest

docker ps | grep screenshot-to-code-frontend

  • 运行 backend

docker rm -f screenshot-to-code-backend

docker run --name screenshot-to-code-backend -d \
--network host \
-e OPENAI_API_KEY="{your_openai_api_key}" \
screenshot-to-code-backend:latest \
poetry run uvicorn main:app --host 0.0.0.0 --port 7001

docker ps | grep screenshot-to-code-backend

使用简介

经过上述步骤后,screenshot-to-code 已成功运行,此时可通过服务器 IP + 5173 端口访问(需要设置相关安全组或防火墙规则,这里需要设置 5173 和 7001 两个端口)。

  • 主页

 

  • 手机助手截图

  • 生成过程

  • 查看源码

  • 生成页面

  • 源码

<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>网页示例</title>
    <script src="https://cdn.tailwindcss.com"></script>
    <style>
        body {
            font-family: 'PingFang SC', 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif;
        }
</style>
</head>
<body class="bg-gray-100">
    <div class="flex h-screen">
        <!-- Sidebar -->
        <div class="w-1/5 bg-gray-800 text-white p-5">
            <div class="text-xl mb-8">导航栏目</div>
            <div class="text-lg mb-4">首页</div>
            <div class="text-lg mb-4">视频</div>
            <div class="text-lg mb-4">直播</div>
            <div class="text-lg mb-4">QQ空间</div>
            <div class="text-lg mb-4">微信公众</div>
            <div class="text-lg mb-4">手机天猫</div>
            <div class="text-lg mb-4">全球文化</div>
            <div class="text-lg mb-4">手机助手</div>
        </div>

        <!-- Main content -->
        <div class="w-4/5 p-5">
            <div class="flex justify-between border-b-2 border-gray-300 pb-2 mb-5">
                <div class="text-gray-700 text-lg">全部应用</div>
                <div class="space-x-2">
                    <button class="bg-blue-500 text-white px-4 py-2 rounded">全部应用</button>
                    <button class="bg-transparent text-blue-500 border border-blue-500 px-4 py-2 rounded">全部团队</button>
                    <button class="bg-transparent text-blue-500 border border-blue-500 px-4 py-2 rounded">下载新应用</button>
                </div>
            </div>
            <!-- Placeholder for content -->
            <div class="h-full"></div>
        </div>
    </div>
</body>
</html>

项目地址

更多项目详细信息请到项目主页获取

https://github.com/abi/screenshot-to-code

快捷镜像

ccr.ccs.tencentyun.com/erik_xu/screenshot-to-code-frontend:latest

ccr.ccs.tencentyun.com/erik_xu/screenshot-to-code-backend:latest

写在最后

[开源初探] 是一个介绍有趣开源项目的栏目,如果大家有什么问题或开源推荐,欢迎在文章或者公众号 - 跬步之巅留言交流。

标签:截图,code,frontend,screenshot,--,docker,backend
From: https://www.cnblogs.com/Erik_Xu/p/18096246

相关文章

  • 使用Go语言开发一个短链接服务:四、生成code算法
    章节 使用Go语言开发一个短链接服务:一、基本原理 使用Go语言开发一个短链接服务:二、架构设计 使用Go语言开发一个短链接服务:三、项目目录结构设计 使用Go语言开发一个短链接服务:四、生成code算法 使用Go语言开发一个短链接服务:五、添加和获取短链接 使用Go语言开......
  • SuccessFactors的岗位code必须是8位的数字
    今天遇到岗位的code居然维护中文,顿时傻眼,SuccessFactors的code可以是数字,但是SAP的id是8位的数字,所以传输到SAP系统后报错。后来发现sf可以做正则表达式:控制岗位code必须是8位的数字......
  • 强大的VS插件CodeRush全新发布v23.2.6——支持语音
    CodeRush是一个强大的VisualStudio.NET插件,它利用整合技术,通过促进开发者和团队效率来提升开发者体验。CodeRushv23.2.6正式版下载具体更新详情如下:语音支持-CTP指定Azure语音识别和OpenAIAPI密钥后,可以在VisualStudio2022中启用语音功能。语音命令按住Ctrl键并说......
  • 算法训练day50卡玛70. 爬楼梯(进阶版)Leetcode322. 零钱兑换279. 完全平方数
    57.爬楼梯(第八期模拟笔试)题目分析我们可以使用动态规划。动态规划的思想是用一个数组dp来保存到达每一级台阶的方法数。对于每一级台阶i,你可以从i-1,i-2,...,i-m级台阶爬上来(只要这些台阶的索引大于等于0),因此到达第i级台阶的方法数就是这些dp[j](i-m<=j<i)的总和。acm......
  • Leetcode 反转链表
    Day10刷题#######力扣官方解答:用节点作为交换方式,而非其中的值,通过增加一个空null,来使得指向完全相反。#######迭代法:classSolution{publicListNodereverseList(ListNodehead){ListNodeprev=null;ListNodecurr=head;while(cur......
  • Mac 使用VSCode搭建SpringBoot+Maven开发环境
    Mac使用VSCode搭建SpringBoot+Maven开发环境大多数人在开发java后端时使用的是IntelliJIDEA,该软件商用版收费太贵,社区版功能又太少,所以我希望可以使用VSCode来创建和开发后端项目,搭建的过程如下:1.下载和安装javasdk下载地址:https://www.oracle.com/java/technologies/downl......
  • UNIQUE VISION Programming Contest 2024 Spring(AtCoder Beginner Contest 346)
    C我们用\(1\simK\)的和减去出现在\(1\simK\)中的数的和。intn,k,a[N],res;map<int,int>vis;signedmain(){ cin>>n>>k; _for(i,1,n)cin>>a[i]; res=k*(1+k)/2; _for(i,1,n)if(a[i]>=1&&a[i]<=......
  • Codeforces Round 936 (Div. 2) E
    SofiaandStrings题面翻译\(t\)组数据。每一次测试,有长度为\(n\)的序列\(s\),长度为\(m\)的序列\(t\)。你可以对\(s\)进行两种操作:删除\(s_i,1\lei\le|s|\)(\(s\)从\(1\)开始标号).将\(s_l,s_{l+1},\dots,s_r\)排序(\(1\lel\ler\le|s|\))。上面\(|s|......
  • Atcoder ABC 346 全题解
    闲话上一篇全题解反向不错,如果大家支持我就会继续更。我ABC也打了,ARC也打了,没打好,疯狂掉大分……包括本场比赛也是整整补了EFG三道题,以及ARC死磕D结果使赛后五分钟AC又有素材了……A懒得讲B由于我被B题坑了,所以在此纪念。最简单的方法就是把字符串复制......
  • AtCoder Regular Contest 173 E Rearrange and Adjacent XOR
    洛谷传送门AtCoder传送门不妨考虑最后的结果可以成为哪些\(a_i\)的组合。为了方便分析,我们令\(a_i=2^{i-1}\)。进行一次操作后,所有\(\text{popcount}(a_i)\)都为偶数。所以一个\(x\in[0,2^n-1]\)能被生成出来的必要条件是\(\text{popcount}(x)\)为偶数。然......