I'm not a color or gif expert. But this works: # see http://www.cocoabuilder.com/archive/cocoa/104713-nsimagergbcolortable-crash.html newPage(100, 100) linearGradient( (0, 0), # startPoint (100, 100), # endPoint [(1, 0, 0), (0, 0, 1), (0, 1, 0)], # colors [0, .2, 1] # locations ) rect(0, 0, 100, 100) fill(1, 0, 0) rect(20, 20, 20, 20) fill(0, 1, 0) rect(100-40, 20, 20, 20) fill(0, 0, 1) rect(100-40, 100-40, 20, 20) fill(0, 1, 1) rect(20, 100-40, 20, 20) import struct table = b"" for i in range(256): r = struct.pack(">B", 30) g = struct.pack(">B", i) b = struct.pack(">B", 255) #a = struct.pack(">B", 254) # use if imageGIFDitherTransparency is True table += r + g + b # + a # table must have a size of 768 # or 1024 when imageGIFDitherTransparency is True print(len(table)) test = '~/Desktop/testGif.gif' saveImage(test, imageGIFRGBColorTable=table) newPage(100, 100) image(test, (0, 0))