最近我的项目用到了Graffiti这个Ray组件, 挺好的,当然,也跟我预期的有差异:
第一个差异,我们的产品支持分组功能,也就是几个点阵涂抹产品拼接在一起使用.
当Graffiti的横向格子数由20变成 60时,显然,如果不改变格子的大小的话, 画布肯定会超出屏幕宽度.
于是,我在最外层套了一个ScrollView, 让它支持横向滚动.尴尬的是, ScrollView的滚动条不显示, 拖动画布的时候,能看到超出屏幕范围的内容, 但是同时,格子也在被涂抹.问了一下AI助手, ScrollView好像没有办法限制不通过内容拖动, 也就是说如果Graffiti的宽超出屏幕范围的话,要在Graffiti里面设置拖动模式(这个模式下禁止涂抹).这个应该是最佳解决办法.因为ScrollView的滚动条也没办法设置显示出来啊.
第二个差异.我们的产品是要支持对现有的画布涂鸦数据进行二次编辑的.但是Graffiti的接口里面并没有参数支持对格子的颜色进行初始化.这个很要命,希望能尽快安排上.
另外,我有留意到, 保存的数据是截图的Base64编码字符串. 嗯, 我们需求的是每个格子的RGB数据(发送给设备的), 我记得在写RN 程序的时候(这个项目就是从RN升级来的),只有原生RN程序支持从图片中获取指定像素位置的颜色值. 封装后的平台里面并没有这个接口. 我不知道现在的平台有没有办法从图片(把Base64编码字符串转为图片)中获取指定像素位置的颜色值.如果有,请一并告诉我,,,,嗯, 如果没有的话, 还是得Graffiti提供另外一个保存接口----返回每个格子的颜色值.
关于Graffiti
关于Graffiti
Tags:
Re: 关于Graffiti
- Graffiti 会尽快支持缩放功能, 另外会增加一个是否禁用涂抹的属性
- 目前已经是支持了入参初始值 drawData , 类型: { x: number; y: number; color: string; }[]
- 通过从 Base64图片中是可以自己获取指定像素位置的颜色值, canvas 读取图片base64, 然后通过 ctx.getImageData 获取
Re: 关于Graffiti
Lucy 2026年 Jan 9日 14:19
- Graffiti 会尽快支持缩放功能, 另外会增加一个是否禁用涂抹的属性
- 目前已经是支持了入参初始值 drawData , 类型: { x: number; y: number; color: string; }[]
- 通过从 Base64图片中是可以自己获取指定像素位置的颜色值, canvas 读取图片base64, 然后通过 ctx.getImageData 获取
谢谢! 期待你们的新功能上线! 我又仔细查看了一下物料市场上有关Graffiti的使用介绍.接口栏最后一项确实提到了drawData这个接口.但是我在项目中查看
Graffiti的接口文档,没有找到这个接口,请确认一下是不是包含这个接口的版本没有发布.