HarmonyOS图片文件读取的RGB 通道数据与其它平台有差异
对一张图片,读取其 RGB 通道数据,HarmonyOS读取的数据却是 RGB 160,177,195,与其他平台有差异,详细代码如下:
context.resourceManager.getRawFileContent('test.jpg').then(value => { 
  let buf = new ArrayBuffer(value.length) 
  let tempBuffer = new Uint8Array(buf) 
  for (let i = 0; i < value.length; i++) { 
    tempBuffer[i] = value[i] 
  } 
  const imageSource = image.createImageSource(buf) 
  // Set the image format to BGRA_8888. 
  imageSource.createPixelMap({desiredPixelFormat : image.PixelMapFormat.RGBA_8888}) 
    .then(async pixelMapObj => { 
      pixelMapObj.getImageInfo().then(info => { 
        let resizeH = info.size.height 
        let resizeW = info.size.width 
        const readBuffer = new ArrayBuffer(pixelMapObj.getPixelBytesNumber()) 
        pixelMapObj.readPixelsToBuffer(readBuffer, (err, res)=> { 
          if (err) { 
            hilog.info(0x0000, 'HiAIFoundationDemo', 'Failed to read image pixel data.') 
            return 
          } else { 
            let dataArray = new Uint8Array(readBuffer) 
            // rt_normalized 
            let channel = 3 
            let inputData = new Float32Array(channel * resizeW * resizeH) 
            for (let i = 0; i < resizeW * resizeH; i++) 
            { 
              let m1 = dataArray[i * 4 + 0]; 
              let m2 = dataArray[i * 4 + 1]; 
              let m3 = dataArray[i * 4 + 2]; 
              let r = (m1/255.0 - 0.485)/0.229; 
              let g = (m2/255.0 - 0.456)/0.224; 
              let b = (m3/255.0 - 0.406)/0.225; 
              inputData[i] = r; 
              inputData[resizeW * resizeH + i] = g; 
              inputData[resizeW * resizeH * 2 + i] = b; 
            } 
          }) 
        }) 
      }) 
    })
        HarmonyOS
      
        赞
        
 收藏 0
 回答 1
 
        待解决
        
相关问题
 读取数据文件的方法有哪些 
1457浏览  • 1回复 待解决
HarmonyOS readPixelsToBuffer与fs读取的差异。 
756浏览  • 1回复 待解决
HarmonyOS 应用上架流程与其他平台上架流程有什么区别? 
1580浏览  • 1回复 待解决
与其他系统的安全机制有何差异? 
595浏览  • 0回复 待解决
HarmonyOS NEXT 会如何与其他平台(如 Google Services)互通? 
533浏览  • 0回复 待解决
鸿蒙next与其他操作系统的差异化优势是什么? 
732浏览  • 0回复 待解决
HarmonyOS  db文件无法读取到数据 
1807浏览  • 1回复 待解决
HarmonyOS 读取图片数据接口,执行顺序问题 
991浏览  • 1回复 待解决
DevEco Studio 怎么生成 RGB565 的 bin 文件 
3870浏览  • 1回复 待解决
HarmonyOS 有读取项目配置文件的案例么? 
1360浏览  • 1回复 待解决
HarmonyOS .ets和.ts文件的差异是什么 
1322浏览  • 1回复 待解决
HarmonyOS 如何读取沙箱中的数据库文件? 
1288浏览  • 1回复 待解决
HarmonyOS 文件读取 
864浏览  • 1回复 待解决
UDMF如何统一HarmonyOS多设备数据管理?与ArkData的定位有何差异? 
643浏览  • 0回复 待解决
HarmonyOS 读取PixelMap的ArrayBuffer,再使用读取的数据创建PixelMap展示,图片变成了黑白,丢失了颜色。 
1309浏览  • 1回复 待解决
HarmonyOS 从文件读取图片为pixelMap 怎样做平铺和纯色填充、图片裁切 
819浏览  • 1回复 待解决
HarmonyOS 读取.properties文件的api 
886浏览  • 1回复 待解决
fs.readTextSync方法为什么只能读取到文件的一行,有什么方法读取全部文件? 
3192浏览  • 1回复 待解决
HarmonyOS 无法读取文件 
1199浏览  • 1回复 待解决
HarmonyOS如何读取文件 
1718浏览  • 1回复 待解决
鸿蒙应用能否直接读取本地的 JSON 文件来获取数据? 
591浏览  • 0回复 待解决
读取振弦传感器频率为什么会有差异? 
4284浏览  • 0回复 待解决
鸿蒙JS 图片读取 请问怎么读取到摄像机拍摄的图片? 
3589浏览  • 1回复 待解决
鸿蒙项目中如何读取项目根目录的文件数据 
1025浏览  • 1回复 待解决
HarmonyOS 读取相册图片无效 
865浏览  • 1回复 待解决





















colorspace会影响rgb的值,和其他平台的colorspace是否一样?参考文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-image-kit/js-apis-image.md#applycolorspace11