#1948. 图像处理像素处理

图像处理像素处理

问题描述

在一个图像处理程序中,需要对图像的像素数据进行高效压缩和存储。图像中的每个像素由一个 32 位无符号整数表示,其格式如下:

  • 前 5 位(r1):表示红色通道分量的高 5 位数据。
  • 接下来 6 位(g1):表示绿色通道分量的高 6 位数据。
  • 再接下来 5 位(b1):表示蓝色通道分量的高 5 位数据。
  • 接下来 1 位(alphaFlag):用于标记该像素是否具有透明度信息,1 表示有透明度,0 表示无透明度。
  • 如果 alphaFlag 为 1,则接下来 5 位(alpha):表示透明度通道的高 5 位数据;如果 alphaFlag 为 0,则这 5 位(reserved)保留未使用,固定为 0。
  • 最后 10 位(r2g2b2):分别表示红色、绿色、蓝色通道分量的低 2 位数据,按顺序排列,即低 2 位的红色数据、低 2 位的绿色数据、低 2 位的蓝色数据。

格式

输入

1 4278190335

分别表示:1压缩数据,第二位表示像素数据,调用函数compressPixels进行压缩处理

0 0 7 30 0 0 0 分別表示:0解压缩数据,第二位开始分别表示r1,g1,b1,alphaFlag,alpha/reserved,r2g2b2

输出

输出压缩后的各个数据 解压缩就输出像素数据

样例

1 4278190335
31 56 0 0 0 255
0 0 7 30 0 0 0
1865983

提示

要求实现以下功能:

  1. 编写一个函数 compressPixels,接收一个无符号 32 位整数(表示原始像素数据),将像素按照上述压缩格式转换并返回。
  2. 编写一个函数 decompressPixels,接收压缩后的数据作为参数,将其还原为原始的 32 位无符号整数像素数据并返回,像素数据有R1 R2 G1 G2 B1 B2 alpha alpha2组合在一起的值