介绍说明

将截图转化为 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

写在最后

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

[开源初探]screenshot-to-code:将截图转化为代码的更多相关文章

  1. 在Mac上使用Visual Studio Code开发/调试.NET Core代码

    .Net Core 1.0终于发布了,Core的一大卖点就是跨平台.这个跨平台不只是跨平台运行,而且可以跨平台开发.今天抽空研究了下在Mac下如何使用VS Code来开发.NET Core程序,并且调 ...

  2. code blocks 如何实现一键代码格式化

    问题:code blocks 如何实现一键代码格式化 解答:直接右键,选择format use ASstyle

  3. Mac上使用Visual Studio Code开发/调试.NET Core代码

    Mac上使用Visual Studio Code开发/调试.NET Core代码 .Net Core 1.0终于发布了,Core的一大卖点就是跨平台.这个跨平台不只是跨平台运行,而且可以跨平台开发.今 ...

  4. 02 How to Write Go Code 如何编写go语言代码

    How to Write Go Code   如何编写go语言代码 Introduction   介绍 Code organization  组织代码 Overview  概述 Workspaces  ...

  5. 阿里开源的几个中间件 dubbo/RocketMQ/canal/druid 代码还是很不错的

    阿里开源的几个中间件 dubbo/RocketMQ/canal/druid 代码还是很不错的

  6. sketch2code 有的叫screenshot to code什么的

    先mark一下项目,回头再深究 https://github.com/mzbac/sketch2code https://www.floydhub.com/emilwallner/datasets/h ...

  7. Nodejs开源项目里怎么样写测试、CI和代码测试覆盖率

    测试 目前主流的就bdd和tdd,自己查一下差异 推荐 mocha和tape 另外Jasmine也挺有名,angularjs用它,不过挺麻烦的,还有一个选择是qunit,最初是为jquery测试写的, ...

  8. 使用Visual Studio Code编写和激活ABAP代码 (上)

    猪年春节后的第一篇,Jerry祝各位猪年大吉! 2019年的六分之一马上就快过完了,不知道大家在新的一年是否给自己定了新的小目标呢?这里Jerry先预祝大家到2019年年底的时候,在年初制定的小目标都 ...

  9. VS Code 自动修改和保存 代码风格 == eslint+prettier

    最近因为用到VS Code,需要统一所有人的代码风格(前端语言js/html/css等,或者后端语言 go/python等也可以这么用). 所以参考了一些网络资料,记录下设置步骤,以便后续查阅. St ...

  10. Visual Studio Code 1.44 解决中文代码显示乱码问题(小白图文教程)

    现今主流的计算机中文字符编码方案是:GBK和UTF-8. 不同编码方案使用不同的字符集,GBK字符集在中文字符长度和字符数量上存在绝对优势,但对国外字符并不支持.所以,完全面向国内的程序/网页使用的是 ...

随机推荐

  1. 多线程系列(二) -Thread类使用详解

    一.简介 在之前的文章中,我们简单的介绍了线程诞生的意义和基本概念,采用多线程的编程方式,能充分利用 CPU 资源,显著的提升程序的执行效率. 其中java.lang.Thread是 Java 实现多 ...

  2. 【Unity3D】阴影原理及应用

    1 阴影原理 ​ 光源照射到不透明物体上,会向该物体的后面投射阴影,如果阴影区域存在其他物体,这些物体不被光源照射的部分就需要渲染阴影.因此,我们可以将阴影的生成抽象出 2 个流程:物体投射阴影.物体 ...

  3. Swoole从入门到入土(14)——HTTP服务器[协程风格]

    在这之间,我们讨论了异步风格HTTP服务器,它继承自异步风格的TCP服务器,有着异步风格的所有优点,同时如果碰到了大量的IO等待也会存在阻塞的缺点. 而协程风格的HTTP则很好处理了IO等待的问题.这 ...

  4. 超简单JSP人员信息管理系统(适合新手练手用)

    自己以前闲着没事写的JSP小项目,适合刚学完JSP拿来练手的朋友. 源码地址: https://github.com/mudfish/userManager 项目说明: 软件需求: 开发工具:ecli ...

  5. 深入理解Go语言(01): interface源码分析

    分析接口的赋值,反射,断言的实现原理 版本:golang v1.12 interface底层使用2个struct表示的:eface和iface 一:接口类型分为2个 1. 空接口 //比如 var i ...

  6. 前端树形Tree数据结构使用-🤸🏻‍♂️各种姿势总结

    01.树形结构数据 前端开发中会经常用到树形结构数据,如多级菜单.商品的多级分类等.数据库的设计和存储都是扁平结构,就会用到各种Tree树结构的转换操作,本文就尝试全面总结一下. 如下示例数据,关键字 ...

  7. 阿里云 SMS 短信 Java SDK 封装

    Github & Issues: https://github.com/cn-src/aliyun-sms 官方文档:https://help.aliyun.com/document_deta ...

  8. OSG开发笔记(二十九):OSG加载模型文件、加载3DMax三维型文件Demo

    前言   Osg深入之后需要打开模型文件,这些模型文件是已有的模型文件,加载入osg之后可以在常见中展示模型文件,该节点可以操作,多个逼真的模型的节点就实现了基本的场景构建.   Demo      ...

  9. go语言中的数据类型

    数据类型可分为四类 基础类型 数字.字符串和布尔型 复合类型 数组.结构体 引用类型 指针.切片.map.函数.通道channel 接口类型 interface

  10. [Rust] Workspace,Package, Crate 和 Module

    package(包) 一个 package 对应一个项目,package 的信息在 Cargo.toml 里面定义. crate(木箱.箱子) crate 指的是 package 编译后的输出文件.以 ...