当前位置: 首页 > news >正文

go语言 做网站外贸导向企业网站

go语言 做网站,外贸导向企业网站,网站开发体系,知名的wordpress网站可可图片编辑 HarmonyOS(6)水印效果 前言 可可图片编辑 也实现了水印效果,这个功能的实现比较取巧。 在预览阶段,直接通过层叠布局来实现水印效果。 在保存图片时,使用组件截图 componentSnapshot 的知识实现保存图…

可可图片编辑 HarmonyOS(6)水印效果

前言

可可图片编辑 也实现了水印效果,这个功能的实现比较取巧。

在预览阶段,直接通过层叠布局来实现水印效果。

在保存图片时,使用组件截图 componentSnapshot 的知识实现保存图片。

https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-arkui-componentsnapshot#componentsnapshotgetdeprecated

image-20250912220119958

componentSnapshot 介绍

componentSnapshot 是 HarmonyOS提供的一个强大功能,允许开发者获取应用中组件的截图,生成 PixelMap 格式的图片数据。这对于实现分享功能内容保存动态生成图片等场景非常有用。

基本使用步骤

1. 准备工作:添加组件标识

首先需要为想要截图的组件添加唯一标识:

// 在build方法中为组件添加id
build() {Column() {// 需要截图的组件Column() {Text('这是要截图的内容').fontSize(20)Image($r('app.media.icon')).width(100).height(100)}.id('targetComponent') // 添加唯一标识// 其他UI组件...}
}

2. 获取截图的基本方法

方法一:异步获取(推荐)
import { image } from '@kit.ImageKit';// 在按钮点击或其他事件中
async takeScreenshot() {try {// 获取UIContextconst uiContext = this.getUIContext();// 使用componentSnapshot获取截图const pixelMap = await uiContext.getComponentSnapshot().get('targetComponent', { scale: 1.0, // 缩放比例waitUntilRenderFinished: true // 等待渲染完成});// 处理截图结果this.handleScreenshotResult(pixelMap);} catch (error) {console.error('截图失败:', error);}
}// 处理截图结果
handleScreenshotResult(pixelMap: image.PixelMap) {// 可以显示在Image组件中this.screenshotImage = pixelMap;// 或者保存到文件// this.saveToFile(pixelMap);
}
方法二:同步获取
takeScreenshotSync() {try {const uiContext = this.getUIContext();const pixelMap = uiContext.getComponentSnapshot().getSync('targetComponent', {scale: 0.8,waitUntilRenderFinished: true});this.handleScreenshotResult(pixelMap);} catch (error) {console.error('同步截图失败:', error);}
}

3. 显示截图结果

// 在build方法中显示截图
build() {Column() {// 原始内容Column() {// ...原有内容}.id('targetComponent')// 截图结果显示Image(this.screenshotImage).width(200).height(200).margin(10).visibility(this.screenshotImage ? Visibility.Visible : Visibility.None)// 截图按钮Button('截图').onClick(() => this.takeScreenshot()).margin(10)}
}

image-20250912223003666

4. 完整示例代码

import { image } from '@kit.ImageKit';@Entry
@Component
struct ScreenshotExample {@State screenshotImage: image.PixelMap | undefined = undefined;// 异步截图方法async takeScreenshot() {try {const uiContext = this.getUIContext();const pixelMap = await uiContext.getComponentSnapshot().get('contentToCapture', {scale: 1.0,waitUntilRenderFinished: true});this.screenshotImage = pixelMap;} catch (error) {console.error('截图失败:', error);}}build() {Column({ space: 20 }) {// 目标截图区域Column() {Text('欢迎使用组件截图功能').fontSize(24).fontColor(Color.Blue)Text('这是可以截图的内容区域').fontSize(16).margin({ top: 10 })Image($r('app.media.logo')).width(120).height(120).margin({ top: 20 })}.id('contentToCapture').padding(20).border({ width: 2, color: Color.Gray })// 截图结果显示if (this.screenshotImage) {Image(this.screenshotImage).width(300).height(200).border({ width: 1, color: Color.Black })}// 操作按钮Button('截图').width(120).onClick(() => this.takeScreenshot())}.width('100%').padding(20)}
}

5. SnapshotOptions 重要参数说明

配置选项:

  • scale: number - 缩放比例(0.1-1.0),默认1.0
  • waitUntilRenderFinished: boolean - 是否等待渲染完成(推荐设为true)
  • region: Object - 指定截图区域
    • start: number - 起始x坐标
    • top: number - 起始y坐标
    • end: number - 结束x坐标
    • bottom: number - 结束y坐标

以往文章

  • 我的iMaHarmonyOS 知识库接入 鸿蒙6 API20 新特性了

    https://mp.weixin.qq.com/s/YsbFQyi5PsndpRUaA9h_dA?token=830743671&lang=zh_CN

  • 鸿蒙创新赛 HarmonyOS 6.0.0(20) 关键特性汇总

    https://mp.weixin.qq.com/s/ERmgSAIT8B8njFqtyPx9IQ

  • 可可图片编辑 HarmonyOS(4)图片裁剪-canvas

    https://mp.weixin.qq.com/s/2M3f_LNnt0YRo0qEnCnqpA

  • 可可图片编辑 HarmonyOS(3)应用间分享图片

    https://mp.weixin.qq.com/s/n8kkdougB4lqDHjYC7co8g

近期活动

最近想要想要考取 HarmonyOS 基础或者高级证书,或者快要获取的同学都可以点击这个链接,加入我的班级,考取成功有机会获得鸿蒙礼盒一份。

https://developer.huawei.com/consumer/cn/training/classDetail/7e230b074eaa41c587c71c1d1a9a6514?type=1%3Fha_source%3Dhmosclass&ha_sourceId=89000248

联系我

带你了解更多HarmonyOS相关的资讯。

http://www.dtcms.com/a/560980.html

相关文章:

  • 十堰微网站建设电话计算机哪个专业最吃香而且最简单
  • OpenCV(十六):椭圆的绘制
  • 数据仓库·简介(一)
  • 如何细分行业 做网站赚钱品质培训网站建设
  • 网站建设 思路室内设计平面图包括
  • 【软件安全】Web Security(Cookies / Session / XSS / SQL Injection / CSRF)概念介绍
  • 【踩坑篇】MyBatis-Plus拦截 ResultSetHandler.handleResultSets返回结果为空List
  • SSM框架高频考点
  • Chart.js 气泡图
  • C4D R21文字挤压的封盖变化详解
  • 网站咨询弹窗是怎么做的视频教做家常菜的网站
  • 网站备案 图标jsp网站开发框架
  • 网站翻页模板wordpress 点击导航链接老是跳转到当前页面
  • 计算机毕业设计java和Vue的在线购物系统 电商平台管理系统 网上购物平台
  • C++ string(四):编码
  • enumerate
  • C++ 多线程同步机制详解
  • EMB电子机械制动器夹紧力分析
  • 计算机操作系统:缓冲区管理
  • 绥化市建设工程网站招投标网站 服务器 域名
  • Altium23批量将元器件的摆放角度恢复正常
  • 陇西网站建设 室内设计网站有pc站和手机站
  • 因果推理算法及工具应用
  • 安卓接入Twitter三方登录
  • CICD工具,Jenkins or Tekton or Arbess一文全面对比评测
  • 高水平的徐州网站建设做好网站内能另外做链接吗
  • 图神经网络分享系列-GAT(GRAPH ATTENTION NETWORKS) (三)
  • 四川手机网站建设费用监理工程师成绩在建设部哪个网站查
  • PyTorch2 Python深度学习 - 全连接神经网络(FNN)
  • Langfuse开源LLM工程平台完整部署实战指南