#Processing, <s>197</s> 195 bytes <!-- language: lang-processing --> void setup(){size(255,255);int r=255,a=r,g=0,b=0,i,j,k;background(a);for(i=0;i<a;k=i<43?g+=6:i<85?r-=6:i<a/2?b+=6:i<170?g-=6:i<213?r+=6:a>1?b-=6:0,i++)for(j=0;j<a;point(i,j++))stroke(r,g,b,a-j);} This outputs the image in a 255x255 sized window ###Explained <!-- language: lang-processing --> void setup(){ //this is required size(255,255); //size of sketch int r=255,a=r,g=0,b=0,i,j,k; //declaring our vars background(a); //set the background colour as white //for-loop for the x-coordinates, it also increments/decrements rgb values // based on the x-coordinate for(i=0;i<a;k=i<43?g+=6:i<85?r-=6:i<a/2?b+=6:i<170?g-=6:i<213?r+=6:a>1?b-=6:0,i++) //for-loop for the y-coordinate (alpha) for(j=0;j<a;point(i,j++)) //2) then draw the point at the location stroke(r,g,b,a-j); //1) set the colour of point } [![enter image description here][1]][1] [1]: https://i.sstatic.net/mdtnu.png ###Edits - Used `int` instead of `float`