Streamlit-Drawable-Canvas:终极交互式绘图组件,让你的Streamlit应用秒变画板
Streamlit-Drawable-Canvas终极交互式绘图组件让你的Streamlit应用秒变画板【免费下载链接】streamlit-drawable-canvasDo you like Quick, Draw? Well what if you could train/predict doodles drawn inside Streamlit? Also draws lines, circles and boxes over background images for annotation.项目地址: https://gitcode.com/gh_mirrors/st/streamlit-drawable-canvasStreamlit-Drawable-Canvas是一款基于Fabric.js的Streamlit自定义组件它能让你在Streamlit应用中轻松集成交互式绘图功能。无论是快速原型设计、图像标注还是创意涂鸦这个强大的组件都能让你的应用瞬间拥有专业级画板功能无需复杂的前端开发知识。为什么选择Streamlit-Drawable-Canvas在数据可视化和机器学习应用中有时我们需要让用户直接在界面上绘制图形或标注图像。传统的解决方案往往需要繁琐的前后端交互开发而Streamlit-Drawable-Canvas将这一切简化到只需几行Python代码。这款组件的核心优势在于零前端知识要求完全通过Python API控制无需编写JavaScript丰富的绘图工具支持自由绘制、直线、圆形、矩形等多种图形高度可定制笔触颜色、宽度、背景样式等均可灵活配置即时数据反馈绘制内容可直接转换为NumPy数组或Pillow图像方便后续处理快速安装指南安装Streamlit-Drawable-Canvas非常简单只需使用pip命令即可pip install streamlit-drawable-canvas如果你需要从源码安装可以克隆仓库后进行本地安装git clone https://gitcode.com/gh_mirrors/st/streamlit-drawable-canvas cd streamlit-drawable-canvas pip install .入门级使用示例下面是一个最简单的使用示例只需几行代码就能创建一个功能完整的绘图应用import streamlit as st from streamlit_drawable_canvas import st_canvas # 创建画布组件 canvas_result st_canvas( fill_colorrgba(255, 165, 0, 0.3), # 填充颜色 stroke_width2, # 笔触宽度 stroke_color#ff0000, # 笔触颜色 background_color#eeeeee, # 背景颜色 height400, # 画布高度 width600, # 画布宽度 drawing_modefreedraw, # 绘图模式 keycanvas, # 组件唯一标识 ) # 显示绘制结果 if canvas_result.image_data is not None: st.image(canvas_result.image_data)核心功能详解多样化的绘图工具Streamlit-Drawable-Canvas提供了多种绘图工具可通过drawing_mode参数进行切换freedraw自由绘制模式支持手绘线条line直线工具可绘制精确的直线rect矩形工具支持绘制矩形和正方形circle圆形工具支持绘制圆形和椭圆polygon多边形工具可绘制任意多边形这些工具的实现代码位于streamlit_drawable_canvas/frontend/src/lib/目录下包括circle.ts、line.ts、rect.ts等文件。图像标注功能除了创建空白画布该组件还支持上传背景图片进行标注from PIL import Image import numpy as np # 上传图片 uploaded_file st.file_uploader(上传背景图片, type[png, jpg]) if uploaded_file is not None: image Image.open(uploaded_file) img_array np.array(image) # 在图片上创建画布 canvas_result st_canvas( background_imageImage.open(uploaded_file), heightimage.height, widthimage.width, drawing_moderect, # 使用矩形工具进行标注 keyimage_annotation, )绘制数据获取与处理绘制完成后你可以通过canvas_result对象获取多种格式的绘制数据image_dataNumPy数组格式的图像数据json_dataJSON格式的绘制对象数据canvas_height和canvas_width画布尺寸信息这些数据可以直接用于机器学习模型训练、图像分析或保存为图片文件。高级配置选项Streamlit-Drawable-Canvas提供了丰富的配置选项让你可以完全定制画布的外观和行为canvas_result st_canvas( # 基础配置 height500, width700, # 样式配置 stroke_widthst.slider(笔触宽度, 1, 25, 3), stroke_colorst.color_picker(笔触颜色, #000000), fill_colorst.color_picker(填充颜色, #ffffff), background_colorst.color_picker(背景颜色, #eeeeee), # 行为配置 drawing_modest.selectbox( 绘图模式, [freedraw, line, rect, circle, polygon] ), keyadvanced_canvas, # 交互配置 display_toolbarst.checkbox(显示工具栏, True), point_display_radiusst.slider(点显示半径, 0, 20, 3), )实际应用场景1. 快速原型设计设计师可以使用Streamlit-Drawable-Canvas快速绘制界面原型配合Streamlit的交互组件实时调整设计方案。2. 图像标注工具在计算机视觉项目中你可以用它创建简单而高效的图像标注工具标注结果可直接用于模型训练。3. 教育类应用创建互动式教学工具让学生在网页上直接绘制数学公式、化学结构或其他教学内容。4. 创意绘画应用结合Streamlit的部署能力快速创建并分享在线绘画应用支持多人协作创作。常见问题解答Q: 如何保存绘制的图像A: 可以使用Pillow库将image_data保存为图片文件from PIL import Image import numpy as np if canvas_result.image_data is not None: img Image.fromarray(canvas_result.image_data.astype(uint8), RGBA) img.save(drawing.png) st.success(图像保存成功)Q: 是否支持撤销/重做功能A: 是的组件内置了撤销/重做功能用户可以通过工具栏上的按钮或快捷键操作。相关实现代码在streamlit_drawable_canvas/frontend/src/components/CanvasToolbar.tsx中。Q: 能否自定义工具栏A: 可以通过修改前端代码来自定义工具栏工具栏组件位于streamlit_drawable_canvas/frontend/src/components/目录。总结Streamlit-Drawable-Canvas为Streamlit应用带来了强大的绘图能力无论是数据科学家、机器学习工程师还是开发者都能通过这个组件轻松添加交互式绘图功能。它的简单易用性和丰富功能使其成为Streamlit生态中不可或缺的一部分。如果你正在开发需要用户绘图或图像标注功能的Streamlit应用不妨尝试一下Streamlit-Drawable-Canvas它可能会成为你项目中的秘密武器【免费下载链接】streamlit-drawable-canvasDo you like Quick, Draw? Well what if you could train/predict doodles drawn inside Streamlit? Also draws lines, circles and boxes over background images for annotation.项目地址: https://gitcode.com/gh_mirrors/st/streamlit-drawable-canvas创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

MCP协议:AI智能体开发的标准化接口与实战指南

MCP协议:AI智能体开发的标准化接口与实战指南

1. 项目概述:为什么说MCP是AI时代的“USB-C”?最近在折腾各种AI智能体开发框架时,我总被一个老问题困扰:不同的工具、不同的数据源、不同的模型,就像一堆不同接口的充电器和设备,每次想让他们“对话”都得专…

2026/8/14 5:45:57 阅读更多 →
Helix Hooks完全手册:轻松掌握React状态管理与副作用处理

Helix Hooks完全手册:轻松掌握React状态管理与副作用处理

Helix Hooks完全手册:轻松掌握React状态管理与副作用处理 【免费下载链接】helix A simple, easy to use library for React development in ClojureScript. 项目地址: https://gitcode.com/gh_mirrors/helix/helix Helix是一个简单易用的ClojureScript Reac…

2026/8/14 5:45:56 阅读更多 →
网站建设nayuwang:从零到一的深度实战指南与避坑手册

网站建设nayuwang:从零到一的深度实战指南与避坑手册

说实话,每次看到有人问我“网站建设nayuwang”到底值不值得做,或者是想了解通过网站建设nayuwang来提升品牌曝光度的具体逻辑时,我总会忍不住点上一根烟( metaphorically speaking, as I dont actually smoke, but you get the point),深吸一口气,然后长叹一声。不是因为…

2026/8/14 5:44:56 阅读更多 →

最新新闻

大学生如何从零开始挖漏洞赚取奖金:三个月实战指南

大学生如何从零开始挖漏洞赚取奖金:三个月实战指南

1. 项目背景与价值解析"挖漏洞拿奖金"这个模式在安全圈已经存在多年,但很多人不知道大学生完全可以从零开始参与。我大三时偶然发现这个领域,三个月后拿到了第一笔漏洞奖金,彻底解决了我的生活费问题。这种技术变现方式最大的优势在…

2026/8/14 7:51:33 阅读更多 →
从直升机噪音到安静办公:G-Helper华硕笔记本控制工具上手全记录

从直升机噪音到安静办公:G-Helper华硕笔记本控制工具上手全记录

从直升机噪音到安静办公:G-Helper华硕笔记本控制工具上手全记录 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Ze…

2026/8/14 7:51:33 阅读更多 →
Codex Taskboard常见问题解答:新手入门到高级用户的疑难解决

Codex Taskboard常见问题解答:新手入门到高级用户的疑难解决

Codex Taskboard常见问题解答:新手入门到高级用户的疑难解决 【免费下载链接】dashi-taskboard 项目地址: https://gitcode.com/gh_mirrors/da/dashi-taskboard Codex Taskboard是一个本地优先的议题面板,可在浏览器中运行,也可通过独…

2026/8/14 7:51:33 阅读更多 →
WebUploader大文件分块加密上传方案在汽车制造行业的实践

WebUploader大文件分块加密上传方案在汽车制造行业的实践

1. 项目背景与核心需求在汽车制造行业,设计图纸的安全传输一直是个棘手问题。去年我们团队为某主机厂开发供应链协同平台时,就遇到了这个痛点——供应商需要上传GB级的设计图纸,但传统FTP方式既不稳定又不安全。经过多轮技术选型,…

2026/8/14 7:51:33 阅读更多 →
InsuranceQA数据集实战:用keras-language-modeling构建专业问答系统

InsuranceQA数据集实战:用keras-language-modeling构建专业问答系统

InsuranceQA数据集实战:用keras-language-modeling构建专业问答系统 【免费下载链接】keras-language-modeling :book: Some language modeling tools for Keras 项目地址: https://gitcode.com/gh_mirrors/ke/keras-language-modeling 在保险行业中&#xf…

2026/8/14 7:51:32 阅读更多 →
express-cdn高级配置:自定义日志、SSL支持与CDN域名管理

express-cdn高级配置:自定义日志、SSL支持与CDN域名管理

express-cdn高级配置:自定义日志、SSL支持与CDN域名管理 【免费下载链接】express-cdn :cloud: Node module for delivering optimized, minified, mangled, gzipped assets with Express and Amazons CDN (S3/CloudFront) 项目地址: https://gitcode.com/gh_mirr…

2026/8/14 7:50:32 阅读更多 →

日新闻

临沂网站建设铭镇:深耕本土数字生态,以匠心铸就企业品牌核心竞争力

临沂网站建设铭镇:深耕本土数字生态,以匠心铸就企业品牌核心竞争力

在这个流量为王、视觉至上的互联网时代,对于临沂乃至整个山东乃至全国的传统中小企业来说,拥有一张精美的“数字名片”早已不再是可选项,而是生存的必答题。每当夜幕降临,沂河两岸灯火辉煌,物流之都的喧嚣逐渐沉淀为对未来的思考。我们常常听到老板们在茶余饭后探讨:为什…

2026/8/14 0:00:26 阅读更多 →
Flutter与OpenHarmony实现剧本杀组队表单开发实战

Flutter与OpenHarmony实现剧本杀组队表单开发实战

1. 项目概述在移动应用开发领域,跨平台框架Flutter因其高效的开发体验和出色的性能表现,已经成为众多开发者的首选。而OpenHarmony作为新兴的操作系统平台,其开放性和灵活性为开发者提供了全新的可能性。本文将聚焦于一个实际应用场景——剧本…

2026/8/14 0:00:26 阅读更多 →
大连网站建设找简维科技:为您打造懂业务更懂用户的数字化转型引擎

大连网站建设找简维科技:为您打造懂业务更懂用户的数字化转型引擎

在这个数字化浪潮席卷全球的今天,企业想要在激烈的市场竞争中站稳脚跟,拥有一张好看的“数字名片”已经远远不够了。很多老板在刚开始接触互联网业务时,都有一个共同的困惑:为什么我花了钱建的网站,就像是在真空中自嗨?访客进来转了两圈就跑了,线索石沉大海,甚至连客服…

2026/8/14 0:01:27 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/13 2:38:34 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/13 10:41:52 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/13 10:41:51 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/13 10:41:50 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/13 10:41:49 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/13 10:41:49 阅读更多 →