前言:
最近做了一项游戏移植模组工程,写了个Py脚本准备把BF1942的地图转换为BF2的地图,这其中就有关于地图高度图的转换(BF1942和BF2的地图高度图都是16位的RAW灰度图,但是图像大小和高度范围不一样,需要进行一定的像素值运算)。当然用PS能很好的完成,不过由于地图数量比较多,不如把这部分功能放入到自己写的转换脚本中。
我在编写脚本的这一块时也查阅了很多人的思路(我没系统的学过Python,就是一个会借鉴他人思路的大学生),不过找不到好的方法——大家都是用numpy库加CV库搞的,而我的脚本已经使用Pillow库,不想再导入其他的库去做图像处理。
而且,我查阅了Pillow的说明文档,却发现Pillow库不支持直接读取和保存RAW类型的图像。网上已有的大佬给出的解决方案也是写的模里模糊的,让人不明白。因此我就把我多次测试出的代码方案发布在下面,以供后人快速解决这种小问题:
Pillow库是不支持直接读取和保存RAW类型的图像,但是可以间接的读取和保存(类似于一些软件的导入和导出功能)
根据Pillow库说明文档(Image Module - Pillow (PIL Fork) 10.0.1 documentation),函数Image.frombytes(mode, siz