HarmonyOS photoAccessHelper 获取的图片资源无法获取图像宽高
通过 photoAccessHelper 获取的图片资源无法获取图像宽高。
Demo:
selectImageFromAlbum() {
// 配置相册选择选项
const photoSelectOptions = new picker.PhotoSelectOptions();
// 选择类型
photoSelectOptions.MIMEType = picker.PhotoViewMIMETypes.IMAGE_TYPE;
// 最大数量
photoSelectOptions.maxSelectNumber = 1;
let uris: Array<string> = [];
const photoViewPicker = new picker.PhotoViewPicker();
photoViewPicker.select(photoSelectOptions).then((photoSelectResult: picker.PhotoSelectResult) => {
uris = photoSelectResult.photoUris;
if (uris.length <= 0) {
return
}
let uri: string = uris[0]
this.getImageFromUri(uri).then(async (pixelMap: PixelMap) => {
// some logic code
})
})
}
async getImageFromUri(uri: string): Promise<image.PixelMap> {
let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(context);
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
// 配置查询条件,使用PhotoViewPicker选择图片返回的uri进行查询
predicates.equalTo('uri', uri);
let fetchOption: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
const asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
// FIXME: 当前获取不到图片宽高,导致 getThumbnail 获取缩略图是图像被截断
// console.log(`image size: ${asset.get(photoAccessHelper.PhotoKeys.WIDTH)} ${asset.get(photoAccessHelper.PhotoKeys.HEIGHT)}`);
const size : image.Size = { // 传个大值,再压缩,默认是缩略值256
height: 10000,
width: 10000
}
fetchResult.close()
try {
return asset.getThumbnail(size);
} catch (e) {
return asset.getThumbnail();
}
}
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS photoAsset获取图片宽高失败
341浏览 • 1回复 待解决
HarmonyOS photoAccessHelper获取到的图片资源,有对应的uuid获取吗
458浏览 • 1回复 待解决
鸿蒙如何获取Element图片的宽高
7916浏览 • 1回复 待解决
获取Column最终的宽高
430浏览 • 1回复 待解决
页面加载前获取网络图片的宽高
689浏览 • 1回复 待解决
如何获取图片的宽高,你知道吗?
2425浏览 • 1回复 待解决
HarmonyOS 使用原生video组件,无法获取视频内容的宽高
2浏览 • 0回复 待解决
如何获取窗口的宽高信息
2348浏览 • 1回复 待解决
ArkTs如何获取组件的宽高?
4630浏览 • 1回复 待解决
HarmonyOS 如何获取组件的大小,宽高?
405浏览 • 1回复 待解决
HarmonyOS获取相册视频的宽高问题
462浏览 • 1回复 待解决
如何测量获取控件高宽
805浏览 • 1回复 待解决
HarmonyOS如何获取resources/media下图片的信息,如图片高、宽? 如何转pixelmap?
721浏览 • 1回复 待解决
HarmonyOS如何获取指定子组件的宽高
1236浏览 • 1回复 待解决
HarmonyOS 怎么在Page中获取窗口的宽高
18浏览 • 0回复 待解决
HarmonyOS 中photoAccessHelper获取图片大小报错
520浏览 • 1回复 待解决
HarmonyOS如何获取component的坐标/宽高,除了onAreaChange获取之外?
328浏览 • 1回复 待解决
怎么获取组件的宽高(组件宽高是自适应的,没有固定大小)?
2488浏览 • 1回复 待解决
HarmonyOS 横屏状态下获取组件的宽高
357浏览 • 1回复 待解决
HarmonyOS photoAccessHelper 能否通过 uri 获取对应的图片obj
362浏览 • 1回复 待解决
如何获取组件的宽高,你学会了吗?
2538浏览 • 1回复 待解决
求大佬告知如何获取组件宽高
465浏览 • 1回复 待解决
java如何获取屏幕宽高。找不到api?
5548浏览 • 1回复 待解决
如何获取组件宽高和在屏幕上的位置
3168浏览 • 2回复 待解决
鸿蒙harmony如何获取屏幕宽高,如何获取信号栏高度?
11137浏览 • 2回复 待解决
getAssets时,FetchOptions的 fetchColumns里面没有指定宽高的key。
成员参数名称,在get时,除了uri、photoType和displayName三个属性之外,其他的属性都需要在fetchColumns中填入需要get的PhotoKeys,例如:get title属性fetchColumns: [‘title’]
https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-photoaccesshelper-V5#ZH-CN_TOPIC_0000001893368817__get