在线图片转PixelMap
使用rcp请求,rcp.createSession
最多创建16个session实例,所以在每个成功后记得要close。
import { rcp } from '@kit.RemoteCommunicationKit';
import { image } from '@kit.ImageKit';
import { BusinessError } from '@kit.BasicServicesKit';
export default class ImageUtil {
//加载网络图片并转换成PixelMap
static requestImageUrl(url: string): Promise<image.PixelMap> {
return new Promise<image.PixelMap>((resolve, reject) => {
let session = rcp.createSession();
session
.get(url)
.then((response) => {
console.info(`Succeeded in getting the response ${response}`);
let imgData: ArrayBuffer = response.body as ArrayBuffer
console.info(`request image success, size: ${imgData.byteLength}`);
let imgSource: image.ImageSource = image.createImageSource(imgData);
imgSource.createPixelMap().then((pixelMap: PixelMap) => {
console.error('image createPixelMap success');
resolve(pixelMap)
session.close();
}).catch((err: BusinessError) => {
console.error(`err: err code is ${err.code}, err message is ${JSON.stringify(err)}`);
reject(err)
session.close();
});
})
.catch((err: BusinessError) => {
console.error(`err: err code is ${err.code}, err message is ${JSON.stringify(err)}`);
reject(err)
session.close();
})
})
}
}