На самом деле идея написания кода на Python превосходна, так как ее легче выполнить, чем запускать некоторые вещи xcode.
Как сказал предыдущий автор, он не тестировал код, но я это сделал.Я обнаружил, что он создает изображение, в котором компоненты RED и BLUE являются неправильными.
Вот почему я решил опубликовать правильную версию этого кода здесь:
#!/usr/bin/python
from PIL import Image,ImageOps
import struct
import sys
if len(sys.argv) < 3:
print "Need two args: filename and result_filename\n";
sys.exit(0)
filename = sys.argv[1]
result_filename = sys.argv[2]
with open(filename) as f:
contents = f.read()
unk1, width, height, unk2, unk3, unk4 = struct.unpack('<6i', contents[-24:])
im = Image.fromstring('RGBA', (width,height), contents, 'raw', 'RGBA', 0, 1)
r,g,b,a = im.split()
im = Image.merge('RGBA', (b,g,r,a))
im.save(result_filename)
Поместите этокод в файле decode_cpbitmap, выполните
chmod 755 decode_cpbitmap
, чтобы сделать его исполняемым, и теперь вы можете вызывать его следующим образом:
./decode_cpbitmap input_filename output_filename
где input_filename - это файл * .cpbitmap, который у вас уже есть и который вы хотите декодировать, а output_filename - smth.png (он будет создан с помощью этого кода).
Вы можете получить ошибку
ImportError: No module named PIL
Затем необходимо установить модуль PIL Python.Я не буду объяснять, как устанавливать модули Python, поскольку вы можете найти его в другом месте.