当前位置:首页 > 技术分析 > 正文内容

Screenshot to Code:把设计图直接转成代码

ruisui883个月前 (03-30)技术分析47

AI 的不断进化给代码开发带来了革命性的效率提升,同时大大降低了编程开发的门槛。

给出一张设计图,甚至只是一张网站的截图,就能一键生成对应的前端代码,这在以前是仿佛天方夜谭一般。但如今在 AI 大模型的加持下,这一切都有可能成为现实。

Screenshot-to-Code 项目借助 LLM 的强大能力,为人们提供了一种前端开发的全新可能。


简介

Screenshot-to-Code 是一个能够将截图、线框图以及 Figma 设计转换为可用代码的工具,代码仓库位于
https://github.com/abi/screenshot-to-code。该项目支持 Claude Sonnet 3.5、
GPT-4o、Gemini 2.0 Flash 等模型,并利用 DALL-E 3 或 Flux Schnell 进行图像生成。

Screenshot-to-Code 涵盖了多种前端技术栈,包括 HTML + Tailwind、HTML + CSS、React + Tailwind、Vue + Tailwind、Bootstrap、Ionic + Tailwind 以及 SVG 等。此外,该项目还增加了对视频 / 屏幕录制转换为功能原型的实验性功能的支持,为开发者提供了更多的可能性。


使用

Screenshot-to-Code 可以在本地运行,应用由一个 React/Vite 的前端和一个 FastAPI 后端组成。运行应用需要 API Key,可以提供能访问 GPT-4 的 OpenAI 的 API Key。对于使用 Ollama 开源模型的,也可以改变环境变量来实现,把以下命令加入到 backend/.env 中:

export OPENAI_BASE_URL="http://localhost:11434/v1"
export OPENAI_API_KEY=fake-key

然后创建模型的别名给 Screenshot-to-Code 使用:

for model in \
   claude-3-5-sonnet-20240620 \
   gpt-4o-2024-05-13 \
   gpt-4-turbo-2024-04-09 \
   gpt_4_vision \
   claude_3_sonnet; do
   ollama cp x/llama3.2-vision $model
done

可以把 x/llama3.2-vision 修改为任意的本地模型使用。


配置 Key 或模型后,运行后端。后端是 Python 的 FastAPI,可以使用 poetry 进行启动:

cd backend
echo "OPENAI_API_KEY=sk-your-key" > .env
echo "ANTHROPIC_API_KEY=your-key" > .env
poetry install
poetry shell
poetry run uvicorn main:app --reload --port 7001

后端运行起来后,再运行前端,使用 yarn:

cd frontend
yarn
yarn dev

前后端都运行起来后,在浏览器访问 http://localhost:5173,就能使用该工具了。

如果需要进行 Debug,则可以使用 mock 模式了避免对 GPT 模型的调用:

MOCK=true poetry run uvicorn main:app --reload --port 7001

如果想要更为独立的部署,也可以使用 Docker:

echo "OPENAI_API_KEY=sk-your-key" > .env
docker-compose up -d --build


工具使用简单,只需上传一张网站的截图,或者录制一段网页的使用视频,然后选择所需的前端技术栈,以及使用的 LLM 模型,点击 “Generate”,稍等片刻,就能产出所需的前端代码,能几乎完美复刻原有的网页。


总结

Screenshot-to-Code 项目为前端开发提供了一种高效、便捷的代码生成方式,大大减少了开发者手动编写代码的工作量,更为没有太多前端开发经验的人们大大降低了开发门槛,使网页开发变得不再遥不可及。

Screenshot-to-Code 不仅适用于个人开发者快速实现原型,也适用于企业团队提高开发效率。在未来,随着 AI 技术的不断发展,Screenshot-to-Code 有望在更多领域得到应用,为网页前端开发带来更多的便利和创新。

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/3162.html

标签: vite svg
分享给朋友:

“Screenshot to Code:把设计图直接转成代码” 的相关文章

GitLab-合并请求

描述合并请求可用于在您对项目进行的其他人员之间交换代码,并轻松与他们讨论更改。合并请求的步骤步骤1-在创建新的合并请求之前,GitLab中应该有一个创建的分支。您可以参考本章来创建分支-步骤2-登录到您的GitLab帐户,然后转到“ 项目”部分下的项目 -步骤3-单击“ 合并请求”选项卡,然后单击“...

jvm疯狂吃内存,到底是谁的锅?

jvm应该是每一个java程序员都需要掌握的内容,但是在没有遇到问题之前,很多都是基于理论的,唯有实战才能增加个人的知识储备。本文是从一个角度来分析是谁在狂吃内存,希望对你有所帮助。本文是易观技术人员注意到一台开发机上各个微服务进程占用内存很高,随即便展开了调查......ps:本文来源于:http...

博信股份新战略后再推新品 TOPPERS E2耳机售价199元

中新网6月21日电 20日,博信股份在北京正式推出新品TOPPERS主动降噪耳机E2,这是博信股份继2月战略暨新品发布会后的第二次新品亮相。价格方面,TOPPERS主动降噪耳机E2零售价199元,并于6月20日下午4点在京东商城公开销售。据介绍,TOPPERS主动降噪耳机E2采用AMS(奥地利微电子...

我的VIM配置

写一篇关于VIM配置的文章,记录下自己的VIM配置,力求简洁实用。VIM的配置保存在文件~/.vimrc中(Windows下是C:\Users\yourname \_vimrc)。VIM除了自身可配置项外,还可插件扩展。VIM的插件一般用vundle或vim-plug来管理,但我力求简单,不打算装太...

vue3使用vue-router路由(路由懒加载、路由传参)

vue-router 是 vue的一个插件库1. 专门用来实现一个SPA单页面应用2 .基于vue的项目基本都会用到此库SPA的理解1) 单页Web应用(single page web application,SPA)2) 整个应用只有一个完整的页面3) 点击页面中的链接不会刷新页面, 本身也不会向...

基于Spring Cloud+VUE的多租户小程序商城源码「快速二开可商用」

一、系统介绍JooLun平台是一个专注微信快速二开系统研发的平台,采用Java语言开发,使用的是最新微服务前后端分离技术,目前有公众号和小程序商城两个版本,有公众号后台管理、小程序商城。基于Spring Cloud微服务+VUE实现的核心框架多租户小程序商城源码,核心框架采用SpringBoot2+...