def flipHoriz(canvas): n = Picture((canvas.getWidth(),canvas.getHeight())) for x in range(canvas.getWidth()): for y in range(canvas.getHeight()): r, g, b = canvas.getPixelColor(x,y) n.setPixelColor(canvas.getWidth()-x-1,y,r,g,b) canvas.close() n.display() return n
def scrollHoriz(canvas) : m = eval(input("Scroll by how many pixels: ")) n = Picture((canvas.getWidth(),canvas.getHeight())) for x in range(canvas.getWidth()): for y in range(canvas.getHeight()): r, g, b = canvas.getPixelColor(x,y) n.setPixelColor((x+m)%canvas.getWidth(),y,r,g,b) canvas.close() n.display() return n
def rotate180(canvas) : w, h = canvas.getWidth(), canvas.getHeight() n = Picture((w,h)) for x in range(w): for y in range(h): r, g, b = canvas.getPixelColor(x,y) n.setPixelColor(w-x-1,h-y-1,r,g,b) canvas.close() n.display() return n
def blur(canvas) : w, h = canvas.getWidth(), canvas.getHeight() n = Picture((w,h)) for x in range(w): for y in range(h): r, g, b = getAdjAvg(canvas,x,y) n.setPixelColor(x,y,r,g,b) canvas.close() n.display() return canvas
def rotate180(canvas): w = canvas.getWidth() h = canvas.getHeight() new_canvas = Picture((w,h)) canvas.close() for i in range(0,w): for j in range(0,h): r = canvas.getPixelRed(w-1-i,h-1-j) g = canvas.getPixelGreen(w-1-i,h-1-j) b = canvas.getPixelBlue(w-1-i,h-1-j) new_canvas.setPixelColor(i,j,r,g,b) return new_canvas
def zoom(canvas): w = canvas.getWidth() h = canvas.getHeight() new_canvas = Picture((w,h)) canvas.close() for i in range(0,w): for j in range(0,h): r = canvas.getPixelRed(w//4+i//2,h//4+j//2) g = canvas.getPixelGreen(w//4+i//2,h//4+j//2) b = canvas.getPixelBlue(w//4+i//2,h//4+j//2) new_canvas.setPixelColor(i,j,r,g,b) return new_canvas
def scrollHorizontally(canvas): n = eval(input("How many pixels would you like to scroll? ")) w = canvas.getWidth() h = canvas.getHeight() new_canvas = Picture((w,h)) canvas.close() for i in range(0,w): for j in range(0,h): r = canvas.getPixelRed(i,j) g = canvas.getPixelGreen(i,j) b = canvas.getPixelBlue(i,j) new_canvas.setPixelColor((i+n)%w,j,r,g,b) return new_canvas
def flipHorizontally(canvas): w = canvas.getWidth() h = canvas.getHeight() new_canvas = Picture((w,h)) canvas.close() for i in range(0,w): for j in range(0,h): r = canvas.getPixelRed(w-1-i,j) g = canvas.getPixelGreen(w-1-i,j) b = canvas.getPixelBlue(w-1-i,j) new_canvas.setPixelColor(i,j,r,g,b) for i in range(0,w): for j in range(0,h): r = new_canvas.getPixelRed(i,j) g = new_canvas.getPixelGreen(i,j) b = new_canvas.getPixelBlue(i,j) canvas.setPixelColor(i,j,r,g,b) return canvas
def zoom(canvas) : w, h = canvas.getWidth(), canvas.getHeight() n = Picture((w,h)) for x in range(w//4,w-(w//4)): for y in range(h//4,h-(h//4)): r, g, b = canvas.getPixelColor(x,y) c,d = x-(w//4),y-(h//4) n.setPixelColor(c*2,d*2,r,g,b) n.setPixelColor((c*2)+1,d*2,r,g,b) n.setPixelColor(c*2,(d*2)+1,r,g,b) n.setPixelColor((c*2)+1,(d*2)+1,r,g,b) canvas.close() n.display() return n
def tiled(canvas) : w, h = canvas.getWidth(), canvas.getHeight() n = Picture((w,h)) for x in range(0,w,3): for y in range(0,h,3): r, g, b = canvas.getPixelColor(x,y) #first row n.setPixelColor(x//3,y//3,r,g,b) n.setPixelColor(x//3 + w//3,y//3,r,g,b) n.setPixelColor(x//3 + 2*(w//3),y//3,r,g,b) #second n.setPixelColor(x//3,y//3 + h//3,r,g,b) n.setPixelColor(x//3 + w//3,y//3 + h//3,r,g,b) n.setPixelColor(x//3 + 2*(w//3),y//3 + h//3,r,g,b) #third row n.setPixelColor(x//3,y//3 + 2*(h//3),r,g,b) n.setPixelColor(x//3 + w//3,y//3 + 2*(h//3),r,g,b) n.setPixelColor(x//3 + 2*(w//3),y//3 + 2*(h//3),r,g,b) canvas.close() n.display() return n
def blur(canvas): w = canvas.getWidth() h = canvas.getHeight() new_canvas = Picture((w,h)) canvas.close() #dealing with the corners r = (canvas.getPixelRed(0,0)+canvas.getPixelRed(1,0)+canvas.getPixelRed(0,1)+canvas.getPixelRed(1,1))//4 g = (canvas.getPixelGreen(0,0)+canvas.getPixelGreen(1,0)+canvas.getPixelGreen(0,1)+canvas.getPixelGreen(1,1))//4 b = (canvas.getPixelBlue(0,0)+canvas.getPixelBlue(1,0)+canvas.getPixelBlue(0,1)+canvas.getPixelBlue(1,1))//4 new_canvas.setPixelColor(0,0,r,g,b) r = (canvas.getPixelRed(w-1,0)+canvas.getPixelRed(w-2,0)+canvas.getPixelRed(w-1,1)+canvas.getPixelRed(w-2,1))//4 g = (canvas.getPixelGreen(w-1,0)+canvas.getPixelGreen(w-2,0)+canvas.getPixelGreen(w-1,1)+canvas.getPixelGreen(w-2,1))//4 b = (canvas.getPixelBlue(w-1,0)+canvas.getPixelBlue(w-2,0)+canvas.getPixelBlue(w-1,1)+canvas.getPixelBlue(w-2,1))//4 new_canvas.setPixelColor(w-1,0,r,g,b) r = (canvas.getPixelRed(w-1,h-1)+canvas.getPixelRed(w-2,h-1)+canvas.getPixelRed(w-1,h-2)+canvas.getPixelRed(w-2,h-2))//4 g = (canvas.getPixelGreen(w-1,h-1)+canvas.getPixelGreen(w-2,h-1)+canvas.getPixelGreen(w-1,h-2)+canvas.getPixelGreen(w-2,h-2))//4 b = (canvas.getPixelBlue(w-1,h-1)+canvas.getPixelBlue(w-2,h-1)+canvas.getPixelBlue(w-1,h-2)+canvas.getPixelBlue(w-2,h-2))//4 new_canvas.setPixelColor(w-1,h-1,r,g,b) r = (canvas.getPixelRed(0,h-1)+canvas.getPixelRed(1,h-1)+canvas.getPixelRed(0,h-2)+canvas.getPixelRed(1,h-2))//4 g = (canvas.getPixelGreen(0,h-1)+canvas.getPixelGreen(1,h-1)+canvas.getPixelGreen(0,h-2)+canvas.getPixelGreen(1,h-2))//4 b = (canvas.getPixelBlue(0,h-1)+canvas.getPixelBlue(1,h-1)+canvas.getPixelBlue(0,h-2)+canvas.getPixelBlue(1,h-2))//4 new_canvas.setPixelColor(0,h-1,r,g,b) #top row for i in range(1,w-1): r = (canvas.getPixelRed(i,0)+canvas.getPixelRed(i-1,0)+canvas.getPixelRed(i+1,0)+canvas.getPixelRed(i,1)+canvas.getPixelRed(i-1,1)+canvas.getPixelRed(i+1,1))//6 g = (canvas.getPixelGreen(i,0)+canvas.getPixelGreen(i-1,0)+canvas.getPixelGreen(i+1,0)+canvas.getPixelGreen(i,1)+canvas.getPixelGreen(i-1,1)+canvas.getPixelGreen(i+1,1))//6 b = (canvas.getPixelBlue(i,0)+canvas.getPixelBlue(i-1,0)+canvas.getPixelBlue(i+1,0)+canvas.getPixelBlue(i,1)+canvas.getPixelBlue(i-1,1)+canvas.getPixelBlue(i+1,1))//6 new_canvas.setPixelColor(i,0,r,g,b) #bottom row for i in range(1,w-1): r = (canvas.getPixelRed(i,h-1)+canvas.getPixelRed(i-1,h-1)+canvas.getPixelRed(i+1,h-1)+canvas.getPixelRed(i,h-2)+canvas.getPixelRed(i-1,h-2)+canvas.getPixelRed(i+1,h-2))//6 g = (canvas.getPixelGreen(i,h-1)+canvas.getPixelGreen(i-1,h-1)+canvas.getPixelGreen(i+1,h-1)+canvas.getPixelGreen(i,h-2)+canvas.getPixelGreen(i-1,h-2)+canvas.getPixelGreen(i+1,h-2))//6 b = (canvas.getPixelBlue(i,h-1)+canvas.getPixelBlue(i-1,h-1)+canvas.getPixelBlue(i+1,h-1)+canvas.getPixelBlue(i,h-2)+canvas.getPixelBlue(i-1,h-2)+canvas.getPixelBlue(i+1,h-2))//6 new_canvas.setPixelColor(i,h-1,r,g,b) #left most column for i in range(1,h-1): r = (canvas.getPixelRed(0,i)+canvas.getPixelRed(0,i-1)+canvas.getPixelRed(0,i+1)+canvas.getPixelRed(1,i)+canvas.getPixelRed(1,i-1)+canvas.getPixelRed(1,i+1))//6 g = (canvas.getPixelGreen(0,i)+canvas.getPixelGreen(0,i-1)+canvas.getPixelGreen(0,i+1)+canvas.getPixelGreen(1,i)+canvas.getPixelGreen(1,i-1)+canvas.getPixelGreen(1,i+1))//6 b = (canvas.getPixelBlue(0,i)+canvas.getPixelBlue(0,i-1)+canvas.getPixelBlue(0,i+1)+canvas.getPixelBlue(1,i)+canvas.getPixelBlue(1,i-1)+canvas.getPixelBlue(1,i+1))//6 new_canvas.setPixelColor(0,i,r,g,b) #right most column for i in range(1,h-1): r = (canvas.getPixelRed(w-1,i)+canvas.getPixelRed(w-1,i-1)+canvas.getPixelRed(w-1,i+1)+canvas.getPixelRed(w-2,i)+canvas.getPixelRed(w-2,i-1)+canvas.getPixelRed(w-2,i+1))//6 g = (canvas.getPixelGreen(w-1,i)+canvas.getPixelGreen(w-1,i-1)+canvas.getPixelGreen(w-1,i+1)+canvas.getPixelGreen(w-2,i)+canvas.getPixelGreen(w-2,i-1)+canvas.getPixelGreen(w-2,i+1))//6 b = (canvas.getPixelBlue(w-1,i)+canvas.getPixelBlue(w-1,i-1)+canvas.getPixelBlue(w-1,i+1)+canvas.getPixelBlue(w-2,i)+canvas.getPixelBlue(w-2,i-1)+canvas.getPixelBlue(w-2,i+1))//6 new_canvas.setPixelColor(w-1,i,r,g,b) #The middle (finally) for i in range(1,w-1): for j in range(1,h-1): r = (canvas.getPixelRed(i-1,j-1)+canvas.getPixelRed(i-1,j)+canvas.getPixelRed(i-1,j+1)+canvas.getPixelRed(i,j-1)+canvas.getPixelRed(i,j)+canvas.getPixelRed(i,j+1)+canvas.getPixelRed(i+1,j-1)+canvas.getPixelRed(i+1,j)+canvas.getPixelRed(i+1,j+1))//9 g = (canvas.getPixelGreen(i-1,j-1)+canvas.getPixelGreen(i-1,j)+canvas.getPixelGreen(i-1,j+1)+canvas.getPixelGreen(i,j-1)+canvas.getPixelGreen(i,j)+canvas.getPixelGreen(i,j+1)+canvas.getPixelGreen(i+1,j-1)+canvas.getPixelGreen(i+1,j)+canvas.getPixelGreen(i+1,j+1))//9 b = (canvas.getPixelBlue(i-1,j-1)+canvas.getPixelBlue(i-1,j)+canvas.getPixelBlue(i-1,j+1)+canvas.getPixelBlue(i,j-1)+canvas.getPixelBlue(i,j)+canvas.getPixelBlue(i,j+1)+canvas.getPixelBlue(i+1,j-1)+canvas.getPixelBlue(i+1,j)+canvas.getPixelBlue(i+1,j+1))//9 new_canvas.setPixelColor(i,j,r,g,b) return new_canvas