使用JES(python)在图像上的白色网格线 [英] White gridlines over image using JES (python)
问题描述
如何使用JES编写程序以在水平方向上的图像上绘制白色"网格线 网格线相隔10个像素,垂直网格线相隔 20像素?
是的,令人惊讶的是,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()从 Yes, surprisingly, So let's do it by hand. Here is a very basic implementation: Note : this could also have been achieved a lot more efficiently using the function drawLine(), from the script given here. ....................... 这篇关于使用JES(python)在图像上的白色网格线的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!addLine(picture, startX, startY, endX, endY)
can only draw black lines !?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)
Output: