HarmonyOS 鸿蒙Next如何快速获取一张本地图片的分辨率?
HarmonyOS 鸿蒙Next如何快速获取一张本地图片的分辨率? 如何快速获取一张本地图片的分辨率?
将cameraPicker.pick拍照返回的uri传入,通过以下代码获取其图片宽高
let file = fileIo.openSync(uri, fileIo.OpenMode.READ_ONLY);
let imageSource = image.createImageSource(file.fd);
// 长:IMAGE_LENGTH 宽:IMAGE_WIDTH
imageSource.getImageProperty(image.PropertyKey.IMAGE_WIDTH).then((width: string) => {
console.info('The new imageWidth is ' + width);
}).catch((error: BusinessError) => {
console.error('Failed to get the Image Width.' + error.message + ", " + error.code);
})
imageSource.getImageProperty(image.PropertyKey.IMAGE_LENGTH).then((length: string) => {
console.info('The new image length is ' + length);
}).catch((error: BusinessError) => {
console.error('Failed to get the Image length.' + error.message + ", " + error.code);
})
注意:保存的时候,fs.accessSync(path)里 path是文件应用沙箱路径。
不能用 file://com.test.remotecontroller/data/storage/el2/base/haps/entry/cache/img.jpg
需要用 /data/storage/el2/base/haps/entry/cache/img.jpg
。
参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-file-fs-V5#fsaccesssync
更多关于HarmonyOS 鸿蒙Next如何快速获取一张本地图片的分辨率?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS(鸿蒙)系统中,要快速获取一张本地图片的分辨率,你可以使用系统提供的媒体库API。以下是实现这一功能的基本步骤,不涉及Java或C语言代码,而是基于鸿蒙系统的开发框架进行说明:
-
加载图片资源:首先,确保你的图片资源已经被正确加载到项目中。如果是本地存储的图片,你需要获取其文件路径。
-
使用BitmapFactory解码图片:鸿蒙系统提供了类似Android的BitmapFactory类,用于解码图片。你可以使用此类的方法(如decodeFile)来加载图片,并获取Bitmap对象。
-
获取图片分辨率:一旦你有了Bitmap对象,就可以通过调用其getWidth()和getHeight()方法来获取图片的宽度和高度,即分辨率。
示例流程(伪代码描述):
BitmapFactory factory = BitmapFactory.getInstance();
Bitmap bitmap = factory.decodeFile("path/to/your/image.jpg");
int width = bitmap.getWidth();
int height = bitmap.getHeight();
请注意,上述描述是基于鸿蒙系统类似Android的API进行的假设。实际开发中,你需要查阅鸿蒙系统的官方文档,了解具体的API调用和类使用方法。
如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html,