粘贴图片的两种方式,本模块主要提供管理系统剪贴板的能力,为系统复制、粘贴功能提供支持。

粘贴图片的两种方式

HarmonyOS
2024-05-20 21:25:53
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
失望的满天星

本模块主要提供管理系统剪贴板的能力,为系统复制、粘贴功能提供支持。系统剪贴板支持对文本、HTML、URI、Want等内容的操作。粘贴图片分为两种方式,我们从网站上复制而来的图片类型属于PixelMap,而从应用内复制的则是uri,所以在粘贴的时候pasteboard提供了两种粘贴方式。

核心代码解释及具体代码展示

下面,分别介绍两种方式的用法:

1、导入模块

import pasteboard from '@ohos.pasteboard';

2、获取系统剪切板实例

pasteboard.getSystemPasteboard()

3、粘贴PixelMap图片

Button("粘贴PixelMap图片") 
          .height(50) 
          .width('100%') 
          .onClick(() => { 
            console.info("粘贴") 
            pasteboard.getSystemPasteboard().getPasteData().then((pasteData) => { 
              let pixelMap = pasteData.getPrimaryPixelMap() 
              pixelMap.getImageInfo().then((imageInfo) => { 
                console.info("test---" + imageInfo.size.height + imageInfo.size.width) 
              }) 
              this.image = pixelMap 
            }) 
          })

4、粘贴uri图片

Button("粘贴uri图片") 
          .height(50) 
          .width('100%') 
          .onClick(() => { 
            console.info("粘贴") 
            pasteboard.getSystemPasteboard().getPasteData().then((pasteData) => { 
              let uri = pasteData.getPrimaryUri() 
              console.log("-------------getPrimaryUri-------------" + uri) 
              let imgfile = fs.open(uri); 
              imgfile.then(file => { 
                console.log("-------------fd-------------", file) 
                const imageSource  = image.createImageSource(file.fd) 
                const decodingOptions: image.DecodingOptions = { 
                  editable: true, 
                  desiredPixelFormat: 3, 
                } 
                imageSource.createPixelMap(decodingOptions).then((pixelMap) => { 
                  console.log("-------------createPixelMap-------------") 
                  this.image = pixelMap 
                }).catch((err:Error) => { 
                  console.log("-------------createPixelMap-- error-----------", err) 
                }) 
              }).catch((err:Error) => { 
                console.log("-------------fileio-- error-----------", err) 
              }) 
            }).catch((err:Error) => { 
              console.log("-------------getPasteData-- error-----------", err) 
            }) 
          })

适配版本信息

  • IDE:DevEco Studio 4.0.3.600
  • SDK:HarmoneyOS 4.0.0.42
分享
微博
QQ
微信
回复
2024-05-21 17:19:50
相关问题
HarmonyOS 系统剪贴板复制粘贴方法
1737浏览 • 1回复 待解决
系统剪贴板可以存储哪些数据?
1546浏览 • 1回复 待解决
无法读取系统剪贴板内容
1267浏览 • 1回复 待解决
HarmonyOS 剪贴板
1081浏览 • 1回复 待解决
HarmonyOS 复制粘贴功能
1569浏览 • 1回复 待解决
HarmonyOS 怎样将文本复制粘贴板
1359浏览 • 1回复 待解决
HarmonyOS 剪贴板用法
1454浏览 • 1回复 待解决
HarmonyOS 剪贴板问题
1585浏览 • 1回复 待解决
HarmonyOS如何实现粘贴板功能
1534浏览 • 1回复 待解决
如何将内容直接复制剪贴板
1849浏览 • 1回复 待解决
关于读取剪贴板内容咨询
1079浏览 • 1回复 待解决
基于@ohos.pasteboard实现剪贴板功能
1511浏览 • 1回复 待解决
如何将纯文本数据写入系统剪贴板
1335浏览 • 1回复 待解决
HarmonyOS 粘贴板如何使用 Demo
1160浏览 • 1回复 待解决
HarmonyOS 全局粘贴功能
835浏览 • 1回复 待解决
HarmonyOS 如何获取和设置粘贴板
2068浏览 • 1回复 待解决