你好我试图在Jython环境中为学生制作一个裁剪功能,这是我到目前为止所拥有的。
我也想弄清楚如何使画布的尺寸与所有新像素一样。
任何帮助
def crop(pic, startX, endX, startY, endY):
canvas = makeEmptyPicture(500, 800)
for sourceX in range(startX, endX):
for sourceY in range(startY, endY):
color = getColor(getPixel(pic, sourceX, sourceY))
setColor(getPixel(canvas, startX, startY), color)
startY = startY + 1
startX = startX + 1
show(canvas)
答案 0 :(得分:1)
试试这个:
注意:生成的画布的大小可以从(endX - startX)x(endY - startY)
获得def crop(pic, startX, endX, startY, endY):
# Check if the cropping bounds are OK with size of the original picture
if (endX - startX > 0) and (endY - startY > 0) and \
(endX < getWidth(pic)) and (endY < getHeight(pic)):
# Create a canvas with correct size
canvas = makeEmptyPicture(endX - startX, endY - startY)
# Browse the interesting part
for sourceX in range(startX, endX):
for sourceY in range(startY, endY):
color = getColor(getPixel(pic, sourceX, sourceY))
# Write the pixels,
# starting from 0 (=startX(Y)-startX(Y)) to endX(Y)
setColor(getPixel(canvas,
sourceX - startX, sourceY - startY), color)
return canvas
else:
# Print error when passing wrong bounds
printNow("Error: bad cropping bounds ! - Expected [0.." +
str(getWidth(pic)-1) + "] x [0.." + str(getHeight(pic)-1) + "]")
return None
def main():
file = pickAFile()
picture = makePicture(file)
cropPic = crop(picture, 50, 150, 50, 180)
if (cropPic):
show(cropPic)
main()
,并提供:
........... .................................. .................. ...........
输出错误的参数:
>>> cropPic = crop(picture, 50, 500, 50, 180)
>>>
======= Loading Progam =======
Error: bad cropping bounds ! - Expected [0..258] x [0..193]