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获取图片宽高失败
227浏览 • 1回复 待解决
HarmonyOS photoAccessHelper获取到的图片资源,有对应的uuid获取吗
303浏览 • 1回复 待解决
鸿蒙如何获取Element图片的宽高
7811浏览 • 1回复 待解决
获取Column最终的宽高
306浏览 • 1回复 待解决
页面加载前获取网络图片的宽高
574浏览 • 1回复 待解决
如何获取图片的宽高,你知道吗?
2179浏览 • 1回复 待解决
ArkTs如何获取组件的宽高?
4475浏览 • 1回复 待解决
如何获取窗口的宽高信息
2247浏览 • 1回复 待解决
HarmonyOS 如何获取组件的大小,宽高?
263浏览 • 1回复 待解决
HarmonyOS获取相册视频的宽高问题
296浏览 • 1回复 待解决
如何测量获取控件高宽
677浏览 • 1回复 待解决
HarmonyOS如何获取指定子组件的宽高
1031浏览 • 1回复 待解决
HarmonyOS如何获取resources/media下图片的信息,如图片高、宽? 如何转pixelmap?
471浏览 • 1回复 待解决
HarmonyOS如何获取component的坐标/宽高,除了onAreaChange获取之外?
217浏览 • 1回复 待解决
HarmonyOS 中photoAccessHelper获取图片大小报错
355浏览 • 1回复 待解决
怎么获取组件的宽高(组件宽高是自适应的,没有固定大小)?
2372浏览 • 1回复 待解决
HarmonyOS 横屏状态下获取组件的宽高
217浏览 • 1回复 待解决
HarmonyOS photoAccessHelper 能否通过 uri 获取对应的图片obj
256浏览 • 1回复 待解决
如何获取组件的宽高,你学会了吗?
2381浏览 • 1回复 待解决
求大佬告知如何获取组件宽高
356浏览 • 1回复 待解决
java如何获取屏幕宽高。找不到api?
5411浏览 • 1回复 待解决
如何获取组件宽高和在屏幕上的位置
2920浏览 • 2回复 待解决
HarmonyOS Xcomponet怎么获取媒体流(视频、直播流)的宽高?
39浏览 • 1回复 待解决
鸿蒙harmony如何获取屏幕宽高,如何获取信号栏高度?
10963浏览 • 2回复 待解决
ImageKnife 这个控件可以监听加载完成后的图片再获取图片的实际宽高吗
897浏览 • 1回复 待解决
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