HarmonyOS 怎么下载图片并显示

HarmonyOS
2025-01-10 07:13:55
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
superinsect

文件下载,建议使用@ohos.request (上传下载),具体demo可参考:

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-request-V5#downloadtask

图片下载及显示出来案例:

import { image } from '@kit.ImageKit';
import { resourceManager } from '@kit.LocalizationKit';

@Entry
@Component
struct ImageTest {
  @State message: string = 'Hello World';
  @State imageStr: string =
    '/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAUAFUDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD19pjHMNoCtKwBSTjnB5B59F6f1qN78wRSK0ZW4ALKkr4DdTjcAfp0qeeNVtyCMxh97g+m7JqjeCKMuzzKIgm5mds4Q98nsCufxx9UEnJbGVD4tlbSbK/+xAm7uPs+wykIpyQDuwT26Y/rnYJlgkDxOsiPgARjgEnHIz0989gOBXE28kC21vM1yu1Y7Q/MQFJZolK5JwNotyeR65+7k9Ne6fHdW9zYw8tPbMFWZeQ+DgHjjnB/DPoazpyb3HU02NFdQZZVE6MGCk/IDg8Z6fp7EfWoJZGt7x5A4BdQ2EOA3uOo/Mdz7E83a+VeX0U89lHCbmRr1WZV+YeXsGQMnOWSTPT52xyOdvxFJHHpsk3nRQPIBCGLY2licMD6ZOcgZwD6EVoZJuSF03VTdR+ZuaNFc8r8ybSAy8duCnA6Zxwc1JqWuXNu1rHaWSyGeQxl5ZCiqQhfPCMSMKfQ9PXjKto30/VPsb3FsZLiACNbf5AoXIYMhySSCMd/lx/DTdWazW90lL27SyH2hjxcGPCiKTneGBAyQOCM7h60uhpBvmsX9Kv57qdmmiWKWEEM0M3moy/3skDnduDL1BGeMjOkt7cSIsiPFgLkgjAz6HrjpxyM5rE0W3t2hu4LGRb23gkkInjbchZyXChtxLEBhnr165JxrFZoAXScI5IVmc53fXPGR/Luaa2Jd032JkvNo2oWTH8MiqAPplh3z64ooksoCAsonVlzyicN74AIHT60UB7xbNrmUyCaRWP93aM/Xjn8arvCpXDEt5UgjXPo23P6EiiigfchihCI8QdjGJFypAIP7wrzx6KKgkBg1NwjN+7Rtm452/ITiiimZ9EX5okmsUmdBlIiwUdOgP8ASsyC4Z3WAqoSRgpwOgPb8Ov1+poooLnuM+2PuRio+QYX5mGP19OKvabiWbzXGXJY5JJPG0Dr9TRRQKO6NTauzZtG3GNuOMVVbDnyHG5PM2ZJOcbM9f0+lFFI3ZRN5NZoURg6rIyAPzgDGOn1ooopmCbsf//Z';
  @State pixelMap: image.PixelMap | undefined = undefined
  aboutToAppear(): void {
    this.getPixelMapByImage()
    this.pixelMap = AppStorage.get("px") as image.PixelMap
  }

  async getPixelMapByImage(): Promise<image.PixelMap> {
    const context: Context =
      getContext(this);
    // 获取resourceManager资源管理器
    const resourceMgr: resourceManager.ResourceManager = context.resourceManager;
    let rawFileDescriptor = await resourceMgr.getRawFd('background.png')
    const imageSource: image.ImageSource = image.createImageSource(rawFileDescriptor);
    let decodingOptions: image.DecodingOptions = {
      editable: true,
      desiredPixelFormat: 3,
    }
    // 创建pixelMap并进行简单的旋转和缩放
    const pixelMap: image.PixelMap = await imageSource.createPixelMap(decodingOptions)
    this.pixelMap = pixelMap
    return pixelMap;
  }

  build() {
    Row() {
      Column() {
        // Image($r('app.media.background')).objectFit(ImageFit.Cover).width('100%').height('80%')
        Image("data:image/png;base64," + this.imageStr + "").height('100vp')
        Image("https://xxx.jpg").onComplete((event) => {
          console.log('1')
          console.log(JSON.stringify(event))
        }).onError((error) => {
          console.log('2')
          console.error('@2' + JSON.stringify(error))
        }).onFinish(() => {
          console.log('3')
        })
      }.width('100%').justifyContent(FlexAlign.Start)
    }.height('100%')
  }
}
分享
微博
QQ
微信
回复
2025-01-10 09:55:23
相关问题
HarmonyOS 如何下载图片
429浏览 • 1回复 待解决
HarmonyOS 图片文件下载
573浏览 • 1回复 待解决
HarmonyOS 视频照片下载到沙箱读取
630浏览 • 1回复 待解决
HarmonyOS 图片下载相关
325浏览 • 1回复 待解决
HarmonyOS 下载文件保存到指定目录
695浏览 • 1回复 待解决
HarmonyOS 图片显示
455浏览 • 1回复 待解决
HarmonyOS 文件或者图片下载
251浏览 • 1回复 待解决
通知里怎么显示图片有知道的吗?
6100浏览 • 2回复 待解决