#Pyth, 28 26 bytes
Pyth, 28 26 bytes
J*4+*50]255*50]0.wm_mxkdJJ Explanation
J - Autoassign J = V *50]0 - 50*[0] *50]255 - 50*[255] + - ^^+^ *4 - 4*^ .w - write_greyscale(V) m J - [V for d in J] _ - reversed(V) m J - [V for k in J] xkd - k^d Python equivalent
J = 4*(50*[255]+50*[0]) write_greyscale([[k^d for k in J][::-1] for d in J]) Try it here (just the colour values)
Output:

