1

如何使用 JES 编写程序在水平网格线间隔 10 像素和垂直网格线间隔 20 像素的图像上绘制“白色”网格线?

4

1 回答 1

0

是的,令人惊讶的是,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() 也可以更有效地实现这一点。


输出:


…………………………………………………………………………………………………………………………………… 在此处输入图像描述_ 在此处输入图像描述_


于 2013-06-25T23:43:48.960 回答