写点什么

前端要凉?微软开源 Sketch2Code,草图秒变代码

  • 2018-09-04
  • 本文字数:1160 字

    阅读完需:约 4 分钟

用户界面设计过程涉及大量创造性的迭代工作。这个过程通常从在白板或白纸上画草图开始,设计师和工程师分享他们的想法,尽力表达出潜在的客户场景或工作流程。当他们在某个设计上达成一致之后,通过照片的形式将草图拍下来,然后手动将草图翻译成 HTML 代码。翻译过程需要耗费很多时间和精力,通常会减慢设计过程。
如果可以将白板上手绘的设计立即反映在浏览器中,那会怎样?如果我们能够做到这一点,在设计头脑风暴结束时,我们就可以拥有一个已经由设计师、开发人员甚至客户验证过的现成原型,这将为网站和应用程序开发省不少时间。现在,微软已经借助 AI 做到了这一点,同时他们还将这个项目在 Github 上开源了。

Sketch2Code 是什么?

Sketch2Code 是一个基于 Web 的解决方案,使用 AI 将手绘的用户界面草图转换为可用的 HTML 代码。Sketch2Code 由微软和 Kabel、Spike Techniques 合作开发。读者可以在 GitHub 上找到与 Sketch2Code 相关的代码、解决方案开发过程和其他详细信息。

Sketch2Code 项目地址: https://github.com/Microsoft/ailab/tree/master/Sketch2Code

下图演示了利用 Sketch2Code 将手绘草图转换成代码的操作过程。在微软官方网站上可以做更多尝试: https://sketch2code.azurewebsites.net/

Sketch2Code 是如何工作的?

让我们来看看使用 Sketch2Code 将手绘草图转换成 HTML 代码的过程:

  • 用户将图片上传到网站上。
  • 自定义视觉模型预测在图像中出现的 HTML 元素,并将它们的位置标出来。
  • 手写文本识别服务读取预测元素中的文本。
  • 布局算法根据预测元素的边框空间信息生成网格结构。
  • HTML 生成引擎使用上述信息来生成 HTML 代码。

工作流程如下所示:

Sketch2Code 的架构设计

Sketch2Code 使用了以下组件:

  • 微软自定义视觉模型(Custom Vision):这个模型是基于不同的手绘稿的图象训练得出的,并标记了与常见 HTML 元素(如文本框、按钮、图像等)相关的信息。
  • 微软计算机视觉服务:用于识别设计元素中的文本。
  • Azure Blob Storage:保存与 HTML 生成过程的每个步骤相关的信息,包括原始图像、预测结果、布局和分组信息等。
  • Azure Function:它作为后端入口点,通过与其他服务发生交互来协调生成过程。
  • Azure Website:用户界面前端,用户可以在这里上载设计图,并查看生成的 HTML。

以上组件通过如下架构组合在一起:

是不是感觉跃跃欲试?

你可以在这里找到 Sketch2Code 的开源代码:

https://github.com/Microsoft/ailab/tree/master/Sketch2Code

也可以在这里对 Sketch2Code 的实际效果进行验证: https://sketch2code.azurewebsites.net/

查看英文原文:

https://blogs.technet.microsoft.com/machinelearning/2018/08/30/turn-whiteboard-ux-sketches-into-working-html-in-seconds-introducing-sketch2code/

http://www.alphr.com/microsoft/1009840/microsofts-ai-sketch2code-builds-websites

2018-09-04 06:064086
用户头像

发布了 731 篇内容, 共 462.6 次阅读, 收获喜欢 2005 次。

关注

评论 6 条评论

发布
用户头像
标题党
2021-04-20 08:53
回复
用户头像
这是升职加薪的附属产物吧?
2018-11-21 15:38
回复
用户头像
又是一败笔
2018-11-10 10:44
回复
用户头像
前端又不只是HTML
2018-11-08 18:33
回复
用户头像
生成的代码是否对二次开发和后期维护友好
2018-11-08 10:27
回复
如果能友好,当年frontpage早就一统天下了
2018-11-08 14:10
回复
没有更多了
发现更多内容

开源技术交流丨一站式全自动化运维管家ChengYing入门介绍

袋鼠云数栈

流批一体开源项目ChunJun技术公开课——ChunJun同步Hive事务表

袋鼠云数栈

当我们在聊「开源大数据调度系统Taier」的数据开发功能时,到底在讨论什么?

袋鼠云数栈

全新升级!《云原生架构白皮书 2022 版》重磅发布

阿里巴巴云原生

阿里云 架构 云原生 白皮书

培训预告 | 企业应用现代化实用教程——微服务治理与开发篇

York

容器 微服务 云原生 数字化转型 应用现代化

大数据开源项目,一站式全自动化全生命周期运维管家ChengYing(承影)走向何方?

袋鼠云数栈

开源项目丨Taier1.2版本发布,新增工作流、租户绑定简化等多项功能

袋鼠云数栈

【接入指南 之 云云接入】快速接入HONOR Connect平台(下)

荣耀开发者服务平台

开发者 IoT 新手指南 荣耀 honor

老忘记带伞,自己动手做一个雨天提醒打伞小工具

华为云开发者联盟

云计算 开发 aPaaS

DataOps不是工具,而是帮助企业实现数据价值的最佳实践

袋鼠云数栈

开源技术交流丨ChengYing部署Hadoop集群实战

袋鼠云数栈

袋鼠云思枢:数驹DTengine,助力企业构建高效的流批一体数据湖计算平台

袋鼠云数栈

落地DevOps,探索高效研发运营一体化解决方案

云智慧AIOps社区

DevOps 质量管理 代码管理 自动化运维 研发效率

数据资产为王,如何解析企业数字化转型与数据资产管理的关系?

袋鼠云数栈

跨平台|融云 React Native IM SDK 全新改版上线

融云 RongCloud

IM sdk

DevSecOps|极狐GitLab IaC 安全扫描,保障云原生安全

极狐GitLab

Docker gitlab 运维 DevSecOps IaC

开源一夏 | layui时间控件 laydate 重置失效

六月的雨在InfoQ

开源 layui 8月月更 laydate

如何在BI中增加“路线地图”并进行数据分析?

葡萄城技术团队

从洞察到决策,一文解读标签画像体系建设方法论丨DTVision分析洞察篇

袋鼠云数栈

袋鼠云申杭:数雁EasyDigit,致力成为金融行业数据洞察平台供应商的“领头雁”

袋鼠云数栈

用 manim 写一个排序算法动画

ooooooh灰灰

算法 前端 后端 动画 排序

基于开源流批一体数据同步引擎ChunJun数据还原—DDL解析模块的实战分享

袋鼠云数栈

想要精准营销,从学习搭建一套对的标签体系开始丨DTVision分析洞察篇

袋鼠云数栈

自动化测试-存储测试用例,哪个更好

和牛

Python 自动化 测试 8月月更

1分钟创建3000台云电脑 阿里云无影发布多款千人协同生产力方案

Lily

走好数据中台最后一公里,为什么说数据服务API是数据中台的标配?

袋鼠云数栈

开源大数据调度系统Taier技术公开课——Taier数据开发介绍

袋鼠云数栈

开源交流丨批流一体数据集成工具ChunJun同步Hive事务表原理详解及实战分享

袋鼠云数栈

“阿里爸爸”最新总结的303页Spring全家桶高级笔记,都是面试必问的知识点

Java工程师

Java spring Spring全家桶

开源项目丨一文详解一站式大数据平台运维管家ChengYing如何部署Hadoop集群

袋鼠云数栈

活动报名| MongoDB 使用规范及最佳实践线上直播来啦!

MongoDB中文社区

mongodb

前端要凉?微软开源Sketch2Code,草图秒变代码_微软_微软ML博客团队_InfoQ精选文章