在设计、绘画或文档编辑等工作中,颜色的一致性非常重要。通过精确取色,用户可以实现更专业的视觉效果,尤其是在需要高度精确的颜色匹配的场景中,如品牌设计、广告制作等。传统取色工具需通过复杂的调色板选择或手动输入色值代码,操作繁琐且易出错。开发者则面临调色算法自研成本高、多端适配逻辑复杂等痛点。
为了精确地获取屏幕上的颜色,HarmonyOS SDK手写笔服务(Pen Kit)推出了"全局取色"功能,适应多种使用场景,为用户提升创作和工作的效率与质量。
接入全局取色功能,用户可以使用手指或者手写笔操作取色器在屏幕上移动,在目标位置抬起手指/抬起手写笔,会生成该位置色值对应的图像信息。
应用场景
在绘画软件中创作时,悬停笔尖一键提取参考图(如 Pinterest 网页、相册照片)的复杂渐变色,直接应用于画布,避免手动调色误差。
教师可以在课堂上更方便地使用不同颜色进行板书演示,帮助学生更好地理解和记忆知识点。
普通用户在会议中进行笔记记录时,可以使用全局取色功能,使笔记更加生动有趣。
开发步骤
1.导入相关模块。
import { imageFeaturePicker } from '@kit.Penkit';import { BusinessError } from '@kit.BasicServicesKit';
复制代码
2.构造全局取色能力。
@Entry@Componentstruct Index { @State message: string = 'Hello World';
build() { Stack({ alignContent: Alignment.Center }) { Column() { Row() { Button() { Text('Call GlobalColorPicker from ets side') .fontSize(18) .fontWeight(FontWeight.Normal) } .width('50%') .height('60vp') .align(Alignment.Center) .onClick((event) => { imageFeaturePicker.pickForResult(event.displayX, event.displayY) .then((colorInfo: imageFeaturePicker.PickedColorInfo) => { if (colorInfo) { console.info('colorInfo=' + JSON.stringify(colorInfo)); } }).catch((err: BusinessError) => { console.error(`pickForResult failed. Code is ${err.code}, message is ${err.message}`) }) }) } } .align(Alignment.Center) } .width('100%') .height('100%') }}
复制代码
了解更多详情>>
访问手写笔服务官网
获取全局取色开发指导文档
评论