HarmonyOS 鸿蒙Next PhotoSelectOptions isOriginalSupported属性的两个Bug

发布于 1周前 作者 htzhanglong 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next PhotoSelectOptions isOriginalSupported属性的两个Bug
sOriginalSupported默认值在文档上写的是true,实际测试是false isOriginalSupported设为true后选择原图和不选择原图得到的图片文件大小没有区别  *测试代码

import photoAccessHelper from '@ohos.file.photoAccessHelper';
import fs from '@ohos.file.fs';

@Entry
@Component
struct WebComponent {
  @State eventType: string = '';
  @State showWeb: boolean = false

  build() {
    Column() {
      Button() {
        Text('测试')
      }.width('100%').height('50vp').onClick(() => {
        try {
          let PhotoSelectOptions = new photoAccessHelper.PhotoSelectOptions();
          PhotoSelectOptions.MIMEType = photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE;
          PhotoSelectOptions.maxSelectNumber = 5;
          PhotoSelectOptions.isOriginalSupported = true;
          let photoPicker = new photoAccessHelper.PhotoViewPicker();
          photoPicker.select(PhotoSelectOptions,
            (err: BusinessError, PhotoSelectResult: photoAccessHelper.PhotoSelectResult) => {
              if (err) {
                console.error(`PhotoViewPicker.select failed with err: ${err.code}, ${err.message}`);
                return;
              }
              const filePath = PhotoSelectResult.photoUris[0]
              console.log('file size: ' + fs.statSync(fs.openSync(filePath, fs.OpenMode.READ_ONLY).fd).size)
              console.info('PhotoViewPicker.select successfully, PhotoSelectResult uri: ' +
              JSON.stringify(PhotoSelectResult));
            });
        } catch (error) {
          let err: BusinessError = error as BusinessError;
          console.error(`PhotoViewPicker failed with err: ${err.code}, ${err.message}`);
        }
      })
    }
  }
}

先不勾选原图再勾选原图进行两次测试输出结果**  图片由手机拍摄得来,可以看到无论是不是原图,文件大小都是一样的  


更多关于HarmonyOS 鸿蒙Next PhotoSelectOptions isOriginalSupported属性的两个Bug的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复
1.以实际默认值为主,文档可能有误

2.是否为原图,可以通过isOriginalSupported来判断,就不需要通过文件大小来判断了

有类似的这种情况,我看是采取isOriginalSupported来判断,而不是通过文件大小去判断的

当前原图选项不管是否选择,给的都是不压缩的图片。

如果用户未选择“原图”选择,第三方自己可以按需对图片/视频进行压缩处理

更多关于HarmonyOS 鸿蒙Next PhotoSelectOptions isOriginalSupported属性的两个Bug的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS 鸿蒙系统中,关于NextPhotoSelectOptions类的isOriginalSupported属性存在的两个Bug,具体表现及原因简述如下:

  1. 属性设置无效:在某些情况下,即使明确设置了isOriginalSupportedtrue,系统在实际选择照片时仍然不会显示原始图片选项。这可能是由于属性设置未正确生效,或者系统内部逻辑在处理该属性时存在缺陷。

  2. 属性状态不一致:在调用相关接口获取NextPhotoSelectOptions实例后,检查isOriginalSupported属性的值,发现其状态与预期设置不符。这可能是在对象创建、初始化或后续处理过程中,属性值被意外修改或覆盖。

这两个问题可能影响到开发者在使用鸿蒙系统API进行照片选择功能开发时的体验,导致无法准确控制用户是否可以选择原始图片。

请注意,上述描述是基于一般性的理解,并未涉及具体代码实现或系统内部机制。若遇到相关问题,建议直接通过官方渠道提交Bug报告,以便鸿蒙系统开发者团队能够尽快修复。

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

回到顶部