HarmonyOS 手机拍摄的图片无法进行尺寸修改,怎么处理?

手机拍摄的图片无法进行尺寸修改,怎么处理?

操作步骤:

1、尺寸修改 截图或者网上保存或者修改过后保存的图 可以修改尺寸成功。

2、尺寸修改 手机相机拍摄的图,保存后要么变色要么空白也就是没有。

阅读 438
1 个回答

如果想保持hdr的解码格式,需要在packing的时候加上编码格式,以及不转buffer,否则在buffer生成pixelmap的时候,生成的pixelmap不一定是hdr格式的,导致编码出现问题。

static async savePixelMap(context: Context, pm: PixelMap): Promise<string> {
  if (pm === null) {
  return '';
}
const imagePackerApi: image.ImagePacker = image.createImagePacker();
const packOpts: image.PackingOption =
  { format: 'image/jpeg', quality: 100,desiredDynamicRange:image.PackingDynamicRange.AUTO };
try {
  FileUtils.packToFile(context, pm);
  const data: ArrayBuffer = await imagePackerApi.packing(pm, packOpts);
  return await FileUtils.saveFile(context, data);
} catch (err) {
  return '';
}
}
async function resizePixelMap(context: Context, pm: PixelMap, sacleW: number, sacleH: number, w: number, h: number) {
  Logger.info(`w = ` + w + '  h=' + h)
  await pm.scale(sacleW, sacleH);
  let uri = await FileUtils.savePixelMap(context, pm);
  Logger.info(`uri = ${JSON.stringify(uri)}`)
  let paramsObj: paramsType = {
    picPath: uri
  }
  router.pushUrl({
    url: 'pages/ResultPage', params: paramsObj
  })
}
logo
HarmonyOS
子站问答
访问
宣传栏