HarmonyOS鸿蒙Next中从相册选择9张照片上传服务器效率低

HarmonyOS鸿蒙Next中从相册选择9张照片上传服务器效率低 从获取到Uri数组到拷贝到沙盒再压缩需9秒,再上传需要3秒,有更好的解决方案吗? 代码如下:

const photoViewPicker = new photoAccessHelper.PhotoViewPicker();
let photoSelectResult: photoAccessHelper.PhotoSelectResult = await photoViewPicker.select(photoSelectOptions);
uris = photoSelectResult.photoUris;
if (uris.length > 0) {
  let fileNames: Array<string> = [];
  let path = getContext(this).cacheDir + '/localImage/';
  console.log('开始压缩')
  for (let index = 0; index < uris.length; index++) {
    const photoUrl: string = uris[index];
    let fileName = ImageHelper.copyImageToSandBoxWithMediaUrl(photoUrl,
      getContext(this)); //拷贝到沙盒 fileNames.push(fileName); 
    let pathDes = path + fileName;
    let imageSource: image.ImageSource = image.createImageSource(pathDes);
    let decodingOptions: image.DecodingOptions = { editable: true, desiredPixelFormat: 3, }
    let pixelMap: image.PixelMap = await imageSource.createPixelMap(decodingOptions)
    let showImage: CompressedImageInfo = await compressedImage(pixelMap,
      maxSize) //压缩沙盒图片 
    localUrls.push(showImage.imageUri);
    originUrls.push(pathDes);
  }
  // 上传 
}

更多关于HarmonyOS鸿蒙Next中从相册选择9张照片上传服务器效率低的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

更多关于HarmonyOS鸿蒙Next中从相册选择9张照片上传服务器效率低的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,从相册选择9张照片上传服务器效率低的原因可能涉及多个方面。首先,图片的加载和预览过程可能会消耗大量内存和CPU资源,尤其是在高分辨率图片的情况下。其次,图片的上传过程可能受到网络带宽的限制,特别是在多张图片同时上传时,网络请求的并发处理可能会导致效率下降。此外,图片的压缩和处理过程也可能影响上传速度,尤其是在没有优化压缩算法的情况下。最后,系统资源的调度和分配也可能影响整体效率,特别是在后台任务较多时。优化这些环节可以提升上传效率。

在HarmonyOS鸿蒙Next中,从相册选择9张照片上传服务器效率低,可能涉及以下原因及优化建议:

  1. 图片压缩:未压缩直接上传大尺寸图片会显著增加上传时间。建议在上传前对图片进行适当压缩,平衡画质与文件大小。

  2. 并发上传:如果采用串行方式逐一上传,效率会大幅降低。改为并发上传,利用多线程技术同时上传多张图片,可显著提升效率。

  3. 网络优化:确保网络连接稳定且带宽充足,弱网环境下考虑使用断点续传技术。

  4. 服务器性能:检查服务器处理能力,确保其能高效处理并发请求。

通过以上措施,可有效提升照片上传效率。

回到顶部