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 获取图片的宽高
1314浏览 • 1回复 待解决
HarmonyOS photoAsset获取图片宽高失败
1150浏览 • 1回复 待解决
鸿蒙如何获取Element图片的宽高
8865浏览 • 1回复 待解决
HarmonyOS photoAccessHelper获取到的图片资源,有对应的uuid获取吗
1703浏览 • 1回复 待解决
HarmonyOS picker选择图片后如何获取图片宽高
1093浏览 • 1回复 待解决
获取Column最终的宽高
1347浏览 • 1回复 待解决
HarmonyOS 如何获取 base64图片的图片原始宽高
1087浏览 • 1回复 待解决
页面加载前获取网络图片的宽高
1705浏览 • 1回复 待解决
如何获取图片的宽高,你知道吗?
3975浏览 • 1回复 待解决
如何获取窗口的宽高信息
3394浏览 • 1回复 待解决
ArkTs如何获取组件的宽高?
6142浏览 • 1回复 待解决
HarmonyOS 如何获取Webview的宽高
870浏览 • 1回复 待解决
HarmonyOS 下刘海的高宽获取不到
707浏览 • 1回复 待解决
HarmonyOS 使用原生video组件,无法获取视频内容的宽高
1233浏览 • 1回复 待解决
HarmonyOS 如何获取组件的大小,宽高?
1589浏览 • 1回复 待解决
HarmonyOS获取相册视频的宽高问题
1483浏览 • 1回复 待解决
如何测量获取控件高宽
1569浏览 • 1回复 待解决
HarmonyOS 获取手机设备宽高
1198浏览 • 1回复 待解决
HarmonyOS 是否存在方法获取某个组件的宽高
958浏览 • 1回复 待解决
HarmonyOS 怎么在Page中获取窗口的宽高
811浏览 • 1回复 待解决
HarmonyOS 是否有ndk接口获取屏幕的宽高
1067浏览 • 1回复 待解决
HarmonyOS如何获取指定子组件的宽高
2938浏览 • 1回复 待解决
HarmonyOS如何获取resources/media下图片的信息,如图片高、宽? 如何转pixelmap?
1970浏览 • 1回复 待解决
怎么获取组件的宽高(组件宽高是自适应的,没有固定大小)?
3822浏览 • 1回复 待解决
HarmonyOS photoAccessHelper如何获取到所有相册的图片?
1281浏览 • 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