2013-06-09 1 views
1

좋아요, 할당을 위해 test_crop()에서 그림을자를 수있는 crop() 함수를 만들어야합니다. 여기에 코드가 있습니다.자이 썬의 이미지 자르기 기능에서 오류가 발생했습니다.

def crop(pict, startX, startY, endX, endY): 
width = endX - startX + 1 
height = endY - startY + 1 
canvas = makeEmptyPicture(width, height) 
targetX = 100 
for sourceX in range(45,200): 
    targetY = 100 
    for sourceY in range(25,200): 
    color = getColor(getPixel(pict, sourceX, sourceY)) 
    setColor(getPixel(canvas, targetX, targetY), color) 
    targetY = targetY + 1 
    targetX = targetX + 1 
show(pict) 
show(canvas) 
return canvas 

def test_crop(): 
setMediaPath() 
pict = makePicture("redMotorcycle.jpg") 
croppedPict = crop(pict, 100, 100, 700, getHeight(pict)/2) 
show(pict) 
show(croppedPict) 

오류는이 코드 조각에 발생

setColor(getPixel(canvas, targetX, targetY), color) 

"Inappropriate argument (of correct type. An error occured attempting to pass an argument to a function."

가 누군가에 어떤 문제가 있는지 말해 주시겠습니까라고? 그것은 교과서와 같은 코드입니다.

+0

정확한 오류 메시지를 복사하여 붙여 넣을 수 있습니까? – 7stud

+0

확실한 의미는 다음과 같습니다 : "부적절한 인수 값 (올바른 형식) 함수에 인수를 전달하는 동안 오류가 발생했습니다." – user2387191

+0

자이 썬의 어떤 버전을 사용하고 있습니까? – 7stud

답변

0

이것은 작동합니다.

Original picture

자른 이미지 : 나는 당신이 오류가 발생하는 이유, 그것은 어떻게 def crop(pict, startX, startY, endX, endY):

def crop(pict): 
    width = getWidth(pict) 
    height = getHeight(pict) 
    canvas = makeEmptyPicture(width, height) 
    targetX = 100 
    for sourceX in range(45,200): 
    targetY = 100 
    for sourceY in range(25,200): 
     color = getColor(getPixel(pict, sourceX, sourceY)) 
     setColor(getPixel(canvas, targetX, targetY),color) 
     targetY = targetY + 1 
    targetX = targetX + 1 
    show(pict) 
    show(canvas) 
    return canvas 

startX, startY, endX, endY에 대한 원본 이미지를 당신의 가치를 점점에있을 수 있습니다 작동하지 수 :

Cropped Picture

이 외에도 코드에 대한 자세한 정보를 제공해야합니다.

관련 문제