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

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

ruisui884周前 (03-30)技术分析11

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:把设计图直接转成代码” 的相关文章

「Git迁移」三行命令迁移Git包含提交历史,分支,tag标签等信息

问题描述:公司需要将一个git远程服务器的全部已有项目迁移到一台新服务器的Gitlab中,其中需要包含全部的提交纪录,已有的全部分支与全部打tag标签,目前此工作已全部迁移完毕,特此记录一下操作步骤环境描述:1. 要迁移的远程Git:Gitblit2. 迁移目的Git:Gitlab3. 暂存代码的P...

K8s里我的容器到底用了多少内存?

作者:frostchen导语 Linux下开发者习惯在物理机或者虚拟机环境下使用top和free等命令查看机器和进程的内存使用量,近年来越来越多的应用服务完成了微服务容器化改造,过去查看、监控和定位内存使用量的方法似乎时常不太奏效。如果你的应用程序刚刚迁移到K8s中,经常被诸如以下问题所困扰:容器的...

Vue Router 4 路由操作 - 路由导航

路由导航分为 声明式导航 和 编程式导航。通过 <router-link to="..."> 标签跳转的方式为声明式导航。通过 路由实例对象(router.push(...))跳转的为编程式导航。导航到不同的位置想要导航到不同的URL,使用 router.push 方法。...

三勾点餐系统java+springboot+vue3,开源系统小程序点餐系统

项目简述前台实现:用户浏览菜单、菜品分类筛选、查看菜品详情、菜品多属性、菜品加料、添加购物车、购物车结算、个人订单查询、门店自提、外卖配送、菜品打包等。后台实现:菜品管理、订单管理、会员管理、系统管理、权限管理等。 项目介绍三勾点餐系统基于java+springboot+element-plus+u...

Alpine.js 如何火起来的!比 React/Vue 如何?

大家好,很高兴又见面了,我是"高级前端?进阶?",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发!前言前端 JavaScript 框架的创新是这个时代最伟大的技术文化现象之一。Alpine 发音为 /??lpa?n/,中文为阿尔卑斯山、...

微信企业号首款永久免费应用问世

7月14日,微信企业号移动办公应用领跑者——办公逸宣布:其所研发的微信办公应用将永久免费,企事业单位只要拥有微信企业号都可以免费安装办公逸各项应用,此举标志着微信办公免费时代现已到来!据悉,办公逸(www.bangongyi.com)现已推出四大微信办公套件,分别为:移动办公管理套件、客户关系管理套...