Белые линии сетки поверх изображения с использованием JES (python)

Как я могу написать программу с использованием JES для рисования «белых» линий сетки на изображении, где горизонтальные линии сетки разделены 10 пикселями, а вертикальные линии сетки разделены 20 пикселями?


person Kelli Davis    schedule 23.05.2013    source источник


Ответы (1)


Да, удивительно, addLine(picture, startX, startY, endX, endY) умеет рисовать только чёрные линии!?

Итак, давайте сделаем это своими руками. Вот очень простая реализация:

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)

Примечание: этого можно было бы добиться намного эффективнее, используя функцию drawLine() из сценария, приведенного здесь..


Вывод:


.......введите здесь описание изображения.........введите здесь описание изображения......


person Gauthier Boaglio    schedule 25.06.2013