好吧,我有一个用 LZ 算法(魔术字节43 5A 32 00
)的变体压缩的 PS3 图像(我已经成功解压缩了它),我从解压缩的形式中得到的是一组 ARGB 颜色/像素(在压缩文件4*width*height
因此我知道解压缩文件可能只包含原始 ARGB 数据)。
这是一张说明渲染 ARGB 数据结果的图像(省略了透明度以使事情更容易辨认)。
解压后的图片:
PS3版截图:
PSP版截图:
我想知道的是你们有没有人知道这种颜色结构使用什么样的逻辑?对我来说,它看起来像是在 y 轴方面的最后一种颜色。其中零值仅获取 y 轴的最后一种颜色的值。看起来我必须将颜色区分/求和。
我尝试过各种方法。例如,在这里我尝试存储一个颜色为零的颜色数组,对于每一行,将数组中 x 位置的 ARGB 的无符号整数表示与新颜色的无符号整数相加 -> A+B = C
。
AB=C,只是给出了粉红色的胡言乱语..
以下是我用来尝试寻找解决方案的一些 ARGB 值示例:
x:0, y:24-27
R G B
137 195 255
240 254 000
014 000 255
001 001 001
这应该给一个青色的颜色(比较游戏截图),如:145, 184, 219
。
*请注意,我的比较图像并不准确。也就是说我是从另一个平台的同一个游戏中得到的,使用了另一种格式。由于图像大小不同。我可以说颜色与新颜色不是 100% 相同。
x:4, y:22-28
R G B
137 195 255
118 168 201
255 204 161
这也应该给出深蓝色,如:020, 068, 096
。
*请注意游戏中对比的颜色不准确,图片也有透明度,所以可能是游戏截图的颜色值弄乱了。
所以如果有人以前遇到过这样的事情并且可以给我一些提示,我会很高兴。:)