HarmonyOS 鸿蒙Next 有图片编辑带涂鸦,马赛克的第三方库

发布于 1周前 作者 eggper 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 有图片编辑带涂鸦,马赛克的第三方库 有图片编辑带涂鸦,马赛克的第三方库

3 回复

可以通过pan手势在图片上绘制图形以及打马赛克(使用的OS能力相关的手势事件以及Canvas画布) 参考demo:

Canvas(this.viewModel.context)
  .width('100%')
  .height('75%')
  .onAreaChange((oldValue: Area, newValue: Area) => {
    this.viewModel.canvasAreaChange(newValue)
  })
  .gesture(
    GestureGroup(GestureMode.Exclusive,
      PanGesture()
        .onActionStart((event: GestureEvent) => {
          let finger: FingerInfo = event.fingerList[0];
          if (finger == undefined) { return }
          let x = finger.localX
          let y = finger.localY
          this.viewModel.moveStart(x,y)
        })
        .onActionUpdate((event: GestureEvent) => {
          let finger: FingerInfo = event.fingerList[0];
          if (finger == undefined) { return }
          let x = finger.localX
          let y = finger.localY
          this.viewModel.moveUpdate(x,y)
        })
        .onActionEnd((event: GestureEvent) => {
          let finger: FingerInfo = event.fingerList[0];
          if (finger == undefined) { return }
          this.viewModel.moveEnd()
        })
    )
  )

绘制路径 以及马赛克

moveStart(x: number, y: number) {
  this.points.push({x: x, y: y})
  this.drawPath.moveTo(x, y)
  this.drawCurrentPathModel()}
moveUpdate(x: number, y: number) {
  let lastPoint = this.points[this.points.length - 1]
  this.points.push({x: x, y: y})
  this.drawPath.quadraticCurveTo((x + lastPoint.x) / 2, (y + lastPoint.y) / 2, x, y)
  this.drawCurrentPathModel()
}
moveEnd() {
  this.points = []
  this.drawPath = new Path2D()
}
clearPath() {
  this.points = []
  this.drawPath = new Path2D()
  this.context.clearRect(0, 0, this.canvasWidth, this.canvasHeight)
}
canvasAreaChange(area: Area) {
  this.canvasHeight = area.height as number
  this.canvasWidth = area.width as number
}
private drawCurrentPathModel() {
  this.context.globalCompositeOperation = 'source-over'
  this.context.lineWidth = this.drawModel.lineWidth
  if (this.drawModel.pathType == DrawPathType.pen) {
    this.context.strokeStyle = this.drawModel.color
  } else {
    if (this.pattern) {
      this.context.strokeStyle = this.pattern
    }
  }
  this.context.lineJoin = 'round'
  this.context.stroke(this.drawPath)
}

更多关于HarmonyOS 鸿蒙Next 有图片编辑带涂鸦,马赛克的第三方库的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


针对帖子标题“HarmonyOS 鸿蒙Next 有图片编辑带涂鸦,马赛克的第三方库”的问题,以下是一个简洁且专业的回答:

HarmonyOS 鸿蒙Next系统中,确实存在支持图片编辑、涂鸦以及马赛克功能的第三方库。这些库通常是为了满足开发者在鸿蒙应用开发中对于图像处理的需求而设计的。

具体来说,你可以通过鸿蒙的开发者社区或者相关的开源平台,搜索到一些专为鸿蒙系统设计的图像处理库。这些库可能提供了丰富的API,允许开发者轻松实现图片的裁剪、旋转、缩放、涂鸦、马赛克等多种操作。

为了找到这些库,你可以尝试在鸿蒙的开发者论坛、GitHub等平台上搜索关键词,如“HarmonyOS 图片编辑库”、“鸿蒙 涂鸦库”或“鸿蒙 马赛克库”等。这样,你就可以找到一些符合你需求的第三方库,并将其集成到你的鸿蒙应用中。

请注意,在使用这些第三方库时,务必确保它们与你的鸿蒙系统版本兼容,并仔细阅读库的文档,了解如何使用API以及可能存在的限制。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部