JES дублирование изображения
Я работаю над проектом, в котором мне нужно распечатать любое изображение, выбранное пользователем, также несколько раз, выбранное пользователем.
Мой код в основном работает, но мне нужно сделать вложенный цикл, который в основном изменит значения для Xpos и Ypos исходного изображения и изменит его для создания нового изображения.
def repeat(pic):
val = requestIntegerInRange("Enter 1-10", 1, 10)
print "The user entered :" + str(val)
w = getWidth(pic)
h = getHeight(pic)
print "Height and Width of this image are:", h, w
result = makeEmptyPicture(w, h * val)
xpos = 0
while(xpos < w):
ypos = 0
while(ypos < h):
pixel = getPixel(pic, xpos, ypos)
color = getColor(pixel)
loop = 0
while(loop <= val):
newX = xpos
newY = ypos + h * val
pixel2 = getPixel(result, newX, newY)
setColor(pixel2, color)
loop = loop + 1
ypos = ypos + 1
xpos = xpos + 1
Вот val
это значение, выбранное пользователем для печати изображения несколько раз.
Когда я запускаю свою программу с приведенным выше кодом, он показывает
The error value is:
Inappropriate argument value (of correct type).Height and Width of the Picture are : 208 146
getPixel(picture,x,y): y (= 1456) is less than 0 or bigger than the height (= 1455)
An error occurred attempting to pass an argument to a function.
1 ответ
Ты делаешь newY = ypos + h * val
где это должно быть newY = ypos + h * loop
,
Более того, ваш цикл на val должен остановиться на loop < val
не loop <= val
, Последняя копия нежелательна (это (val + 1)th), и это та часть, которая заставляет вашу программу терпеть неудачу, я думаю.