Forgotten trick
There exists an image format that is so simple that converting a 2d array list of pixel values is only 6 lines of Python
def pbm(pix2d,valrange):
print("P2")
print("%d %d" % (len(pix2d[0]),len(pix2d)))
print("%d" % (valrange))
for pixrow in pix2d:
print(" ".join([str(pix) for pix in pixrow]))
The NetPBM format! This implementation actually only covers the "P2" variant of the format (gray-scale): P1 is monochrome and P3 is full RGB. There are also binary variants of these P4-P6.
The format is not the forgotten trick though. See the code? No file handling! The trick is to let the shell handle this. Lets generate a small image (one-liners are fun!).
pixels = [[(y*x) % 64 for x in range(64)] for y in range(64)]
pbm(pixels,64)
Running this will dump the image data straight to terminal, which can be nice for debugging.
$python pbm.py
Writing the image to disk is easy though:
$python pbm.py > test.pbm
Saying that this is a "forgotten trick" is of course pure click bait, meant to anger you. I should have said that this was forgotten by me. I often find myself writing code that both write data to a textile and dumps the lines to the terminal for debugging. Well, that stops now.