3 def table_generator(f
):
4 return ",\n".join([", ".join(["0x%2.2x" % h
for h
in [f(i
) for i
in range(r
,r
+16)]]) for r
in range(0, 65536, 16)])
6 with
open("PremultiplyTables.h", "w") as f
:
7 f
.write("const uint8_t PremultiplyTable[256*256] = {\n");
8 f
.write(table_generator(lambda i
: ((i
/ 256) * (i
% 256) + 254) / 255) + "\n")
10 f
.write("const uint8_t UnpremultiplyTable[256*256] = {\n");
11 f
.write(table_generator(lambda i
: (i
% 256) * 255 / ((i
/ 256) if (i
/ 256) > 0 else 255) % 256) + "\n")