访问HarmonyOS系统相册,选中图片并显示

访问HarmonyOS系统相册,选中图片并显示 如何实现点击图片访问系统相册,选中图片返回后,在原来页面展示选中的图片

8 回复

该问题,设计到产品需求。不同的场景,实现方案不一样。

请参考:

[HarmonyOS]鸿蒙中如何获取用户相册图片?photoAccessHelper.PhotoViewPicker-CSDN博客

[HarmonyOS NEXT]鸿蒙图片或视频保存相册-CSDN博客

更多关于访问HarmonyOS系统相册,选中图片并显示的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


非常感谢您的解答,

基本信息

  • 姓名: 张三
  • 年龄: 28
  • 职位: 软件工程师

技能

  • Python
  • Java
  • C++

这里有个官方demo:https://gitee.com/harmonyos_samples/ImageGetAndSave

  1. 图片获取提供了四种实现方式:分别是Photo Picker组件、PhotoViewPicker接口、CameraPicker接口和DocumentViewPicker。
  2. 读取图片信息使用了getImageInfo和getImageProperties方法。
  3. 创建PixelMap对象使用imageSource.createPixelMap()方法。
  4. 保存图片使用了安全控件和photoAccessHelper模块。

找HarmonyOS工作还需要会Flutter技术的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:BV1S4411E7LY/?p=17

非常感谢您的解答,

基本信息

  • 姓名: 张三
  • 年龄: 28
  • 职业: 软件工程师

技能

  • 熟练掌握Java编程
  • 熟悉Python编程
  • 了解C++编程

经验

  • 在某公司担任软件工程师,负责开发和维护企业级应用
  • 参与多个大型项目,包括电商平台和金融系统

教育背景

  • 计算机科学学士学位,某某大学,2012年毕业
import { BusinessError } from '@ohos.base';
import { picker } from '@kit.CoreFileKit';
import { photoAccessHelper } from '@kit.MediaLibraryKit';

@Entry
@Component
struct PickerPhoto {
  @State getAlbum: string = '显示相册中的图片';
  @State imageUrl: Array<string> = [];

  async selectImage(maxSelectNumber = 1) {
    let uris: Array<string> = []; 
    let PhotoSelectOptions = new photoAccessHelper.PhotoSelectOptions();
    PhotoSelectOptions.MIMEType = photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE; 
    PhotoSelectOptions.maxSelectNumber = maxSelectNumber; 
    let photoPicker = new photoAccessHelper.PhotoViewPicker();
    await photoPicker.select(PhotoSelectOptions).then((photoSelectResult) => {
      console.log("fyh photoSelectResult:" + JSON.stringify(photoSelectResult));
      uris = photoSelectResult.photoUris;
    }).catch((err: BusinessError) => {
      console.error(`Invoke photoViewPicker.select failed, code is ${err.code}, message is ${err.message}`);
    });
    console.log("fyh uri:222" + uris);
    return uris;
  }

  build() {
    Row() {
      Column() {
        Button(this.getAlbum).onClick(async () => {
          this.imageUrl = await this.selectImage(1); 
          console.log('this.imageUrl', JSON.stringify(this.imageUrl));
        });
        Row({ space: 15 }) {
          if (this.imageUrl.length > 0) {
            ForEach(this.imageUrl, (item: string) => {
              Image(item)
                .width(100)
                .height(100)
                .borderRadius(10)
            }, (item: string) => item);
          }
        }.width('100%')
        .padding(20)
        .justifyContent(FlexAlign.Center);
      }.width('100%');
    }.height('100%');
  }
}

非常感谢您的解答,

基本信息

  • 姓名: 张三
  • 年龄: 28
  • 职业: 软件工程师

技能

  • 熟练使用Java和Python
  • 熟悉Web开发
  • 了解机器学习基础知识

联系方式

在HarmonyOS中,访问系统相册并选中图片并显示可以通过PhotoViewPickerImage组件实现。首先,使用PhotoViewPicker组件打开系统相册,用户可以选择图片。选中图片后,获取图片的URI,并通过Image组件显示。

以下是一个简单的代码示例:

import photoViewPicker from '@ohos.file.picker';
import image from '@ohos.multimedia.image';

async function pickAndDisplayImage() {
  try {
    const photoSelectOptions = new photoViewPicker.PhotoSelectOptions();
    photoSelectOptions.MIMEType = photoViewPicker.PhotoViewMIMETypes.IMAGE_TYPE;
    photoSelectOptions.maxSelectNumber = 1;

    const photoPicker = new photoViewPicker.PhotoViewPicker();
    const result = await photoPicker.select(photoSelectOptions);

    if (result && result.photoUris.length > 0) {
      const imageUri = result.photoUris[0];
      const imageComponent = new image.Image();
      imageComponent.src = imageUri;
      // 在这里将imageComponent添加到UI中进行显示
    }
  } catch (error) {
    console.error('Failed to pick or display image:', error);
  }
}

在这个示例中,PhotoViewPicker用于打开相册并选择图片,Image组件用于显示选中的图片。

回到顶部