11 result += "\\{:03o}".format(ord(c))
16 def make_tex(fn, mipmap=False, srgb=False):
21 fmt = "".join(img.getbands())
23 fmt = "LUMINANCE8_ALPHA8"
30 result = "storage {} {} {};\n".format(fmt, img.size[0], img.size[1])
32 result += "generate_mipmap true;\n"
33 result += "raw_data \""
34 data = list(img.getdata())
35 for y in range(img.size[1]):
36 i = (img.size[1]-1-y)*img.size[0]
37 if len(img.getbands())==1:
38 result += escape("".join([chr(v) for v in data[i:i+img.size[0]]]))
40 result += escape("".join(["".join([chr(v) for v in p]) for p in data[i:i+img.size[0]]]))
45 if __name__=="__main__":
49 parser = argparse.ArgumentParser()
50 parser.add_argument("-o", "--output", metavar="FILE", help="Output filename")
51 parser.add_argument("-m", "--mipmap", action="store_true", help="Enable mipmaps")
52 parser.add_argument("--srgb", action="store_const", const=True, help="Use sRGB color space")
53 parser.add_argument("image")
55 args = parser.parse_args()
59 out_fn = os.path.splitext(args.image)[0]+".tex2d"
60 out = open(out_fn, "w")
61 out.write(make_tex(args.image, args.mipmap, args.srgb))