How can I write a program using JES to draw “White” gridlines on an image where the horizontal gridlines are separated by 10 pixels and the vertical gridlines are separated by 20 pixels?
            Asked
            
        
        
            Active
            
        
            Viewed 2,441 times
        
    1 Answers
0
            Yes, surprisingly, addLine(picture, startX, startY, endX, endY) can only draw black lines !?
So let's do it by hand. Here is a very basic implementation:
def drawGrid(picture, color):
  w = getWidth(picture)
  h = getHeight(picture)
  printNow(str(w) + " x " + str(h))
  w_offset = 20  # Vertical lines offset
  h_offset = 10  # Horizontal lines offset
  # Starting at 1 to avoid drawing on the border
  for y in range(1, h):     
    for x in range(1, w):
      # Here is the trick: we draw only 
      # every offset (% = modulus operator)
      if (x % w_offset == 0) or (y % h_offset == 0):
        px = getPixel(picture, x, y)
        setColor(px, color)
file = pickAFile()
picture = makePicture(file) 
# Change the color here
color = makeColor(255, 255, 255) # This is white
drawGrid(picture, color)
show(picture)
Note : this could also have been achieved a lot more efficiently using the function drawLine(), from the script given here.
Output:
.......
.........
.......
        Community
        
- 1
 - 1
 
        Gauthier Boaglio
        
- 10,054
 - 5
 - 48
 - 85