my $edge = 100; use GD; # create a new image my $im = new GD::Image($edge+2, $edge+2); my $white = $im->colorAllocate(255,255,255); my $red = $im->colorAllocate(255,0,0); # make the background transparent white $im->transparent($white); # This is mine :-) # plot the points my $edge_squared = $edge * $edge; for (my $i = 1; $i <= $edge_squared; $i++) { if($i % 16 == 0) { my($x, $y) = position($i); $im->setPixel($edge/2+$x, $edge/2-$y, $red); } } # Save the image file open PNG, ">result.png" or die "Can't write to file: $!"; # make sure we are writing to a binary stream binmode PNG; # Convert the image to PNG and save it print PNG $im->png;