рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдкрд╛рдпрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЗ рдмрдирд╛рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдХреБрдЫ рд╕рдмрд╕реЗ рдкреНрд░рд╕рд┐рджреНрдз рд▓реЗрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рд▓реЗрдЦ рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдпрд╣ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╢реБрд░реБрдЖрддреА рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИред
рдкрд░реАрдХреНрд╖рдг рдЪрд┐рддреНрд░:

рдЯреНрд░реЗрдирд┐рдВрдЧ
import random from PIL import Image, ImageDraw
рднреВрд░реЗ рд░рдВрдЧ
рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЛ "рдФрд╕рдд" рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
if (mode == 0): for i in range(width): for j in range(height): a = pix[i, j][0] b = pix[i, j][1] c = pix[i, j][2] S = (a + b + c) // 3 draw.point((i, j), (S, S, S))

рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рдордЫрд▓реА

рд╕реАрдкрд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдФрд╕рдд рдореВрд▓реНрдп рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдФрд░ рдХреБрдЫ рдЧреБрдгрд╛рдВрдХ рд▓реЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдордзреНрдп = (рдЖрд░ + рдЬреА + рдмреА) / рей
рдкрд╣рд▓рд╛ рдкрд┐рдХреНрд╕реЗрд▓ рдорд╛рди (R) = рдордзреНрдп + 2 * k
рджреВрд╕рд░рд╛ рдкрд┐рдХреНрд╕реЗрд▓ рдорд╛рди (G) = рдордзреНрдп + рдХреЗ
рддреАрд╕рд░рд╛ рдкрд┐рдХреНрд╕реЗрд▓ рдореВрд▓реНрдп (рдмреА) = рдордзреНрдп
if (mode == 1): depth = int(input('depth:')) for i in range(width): for j in range(height): a = pix[i, j][0] b = pix[i, j][1] c = pix[i, j][2] S = (a + b + c) // 3 a = S + depth * 2 b = S + depth c = S if (a > 255): a = 255 if (b > 255): b = 255 if (c > 255): c = 255 draw.point((i, j), (a, b, c))

рдЧрд╣рд░рд╛рдИ = 30
рдирдХрд╛рд░рд╛рддреНрдордХ
рдЕрдм рд╣рдо рд╕реАрдЦреЗрдВрдЧреЗ рдХрд┐ рдирдХрд╛рд░рд╛рддреНрдордХ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
рдпрд╣ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рдмрд╕ рдкреНрд░рддреНрдпреЗрдХ рдкрд┐рдХреНрд╕реЗрд▓ рдореВрд▓реНрдп рдХреЛ 255 рд╕реЗ рдШрдЯрд╛рдПрдВред
if (mode == 2): for i in range(width): for j in range(height): a = pix[i, j][0] b = pix[i, j][1] c = pix[i, j][2] draw.point((i, j), (255 - a, 255 - b, 255 - c))

рд╢реЛрд░ рдЬреЛрдбрд╝рдирд╛
рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИред
рд╣рдо рд╣рдореЗрд╢рд╛ рдкрд┐рдХреНрд╕реЗрд▓ рдореЗрдВ рдХреБрдЫ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдореВрд▓реНрдп рдЬреЛрдбрд╝реЗрдВрдЧреЗред рдЗрди рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдкреНрд░рд╕рд╛рд░ рдЬрд┐рддрдирд╛ рдмрдбрд╝рд╛ рд╣реЛрдЧрд╛, рдЙрддрдирд╛ рд╣реА рдЕрдзрд┐рдХ рд╢реЛрд░ рд╣реЛрдЧрд╛ред
if (mode == 3): factor = int(input('factor:')) for i in range(width): for j in range(height): rand = random.randint(-factor, factor) a = pix[i, j][0] + rand b = pix[i, j][1] + rand c = pix[i, j][2] + rand if (a < 0): a = 0 if (b < 0): b = 0 if (c < 0): c = 0 if (a > 255): a = 255 if (b > 255): b = 255 if (c > 255): c = 255 draw.point((i, j), (a, b, c))

рдХрд╛рд░рдХ = 70
рдЪрдордХ
рдЪрдордХ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдкрд┐рдХреНрд╕реЗрд▓ рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдореВрд▓реНрдп рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗред рдпрджрд┐ рдпрд╣> 0 рд╣реИ, рддреЛ рдЪрд┐рддреНрд░ рдЙрдЬреНрдЬрд╡рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдЧрд╣рд░рд╛ред
if (mode == 4): factor = int(input('factor:')) for i in range(width): for j in range(height): a = pix[i, j][0] + factor b = pix[i, j][1] + factor c = pix[i, j][2] + factor if (a < 0): a = 0 if (b < 0): b = 0 if (c < 0): c = 0 if (a > 255): a = 255 if (b > 255): b = 255 if (c > 255): c = 255 draw.point((i, j), (a, b, c))

рдХрд╛рд░рдХ = резрежреж

рдХрд╛рд░рдХ = -100
рдмреНрд▓реИрдХ - рд╡реНрд╣рд╛рдЗрдЯ рдЗрдореЗрдЬ
рдЕрдм рд╕рднреА рдкрд┐рдХреНрд╕реЗрд▓ рдХреЛ 2 рд╕рдореВрд╣реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП: рдХрд╛рд▓реЗ рдФрд░ рд╕рдлреЗрджред
рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рд╕рдореВрд╣ рдореЗрдВ рд╕рджрд╕реНрдпрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдкрд┐рдХреНрд╕реЗрд▓ рдХрд╛ рдореВрд▓реНрдп рдХреНрдпрд╛ рд╣реИ: рд╕рдлреЗрдж рдпрд╛ рдХрд╛рд▓рд╛ред
if (mode == 5): factor = int(input('factor:')) for i in range(width): for j in range(height): a = pix[i, j][0] b = pix[i, j][1] c = pix[i, j][2] S = a + b + c if (S > (((255 + factor) // 2) * 3)): a, b, c = 255, 255, 255 else: a, b, c = 0, 0, 0 draw.point((i, j), (a, b, c))

рдХрд╛рд░рдХ = резрежреж
рдирд┐рд╖реНрдХрд░реНрд╖
рдкрд░рд┐рдгрд╛рдо рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдмреНрд░рд╢ рдХреЛ рд╣рдЯрд╛ рджреЗрдВред
image.save("ans.jpg", "JPEG") del draw
рдЕрдВрддрд┐рдо рдХреЛрдб import random from PIL import Image, ImageDraw mode = int(input('mode:')) image = Image.open("temp.jpg") draw = ImageDraw.Draw(image) width = image.size[0] height = image.size[1] pix = image.load() if (mode == 0): for i in range(width): for j in range(height): a = pix[i, j][0] b = pix[i, j][1] c = pix[i, j][2] S = (a + b + c) // 3 draw.point((i, j), (S, S, S)) if (mode == 1): depth = int(input('depth:')) for i in range(width): for j in range(height): a = pix[i, j][0] b = pix[i, j][1] c = pix[i, j][2] S = (a + b + c) // 3 a = S + depth * 2 b = S + depth c = S if (a > 255): a = 255 if (b > 255): b = 255 if (c > 255): c = 255 draw.point((i, j), (a, b, c)) if (mode == 2): for i in range(width): for j in range(height): a = pix[i, j][0] b = pix[i, j][1] c = pix[i, j][2] draw.point((i, j), (255 - a, 255 - b, 255 - c)) if (mode == 3): factor = int(input('factor:')) for i in range(width): for j in range(height): rand = random.randint(-factor, factor) a = pix[i, j][0] + rand b = pix[i, j][1] + rand c = pix[i, j][2] + rand if (a < 0): a = 0 if (b < 0): b = 0 if (c < 0): c = 0 if (a > 255): a = 255 if (b > 255): b = 255 if (c > 255): c = 255 draw.point((i, j), (a, b, c)) if (mode == 4): factor = int(input('factor:')) for i in range(width): for j in range(height): a = pix[i, j][0] + factor b = pix[i, j][1] + factor c = pix[i, j][2] + factor if (a < 0): a = 0 if (b < 0): b = 0 if (c < 0): c = 0 if (a > 255): a = 255 if (b > 255): b = 255 if (c > 255): c = 255 draw.point((i, j), (a, b, c)) if (mode == 5): factor = int(input('factor:')) for i in range(width): for j in range(height): a = pix[i, j][0] b = pix[i, j][1] c = pix[i, j][2] S = a + b + c if (S > (((255 + factor) // 2) * 3)): a, b, c = 255, 255, 255 else: a, b, c = 0, 0, 0 draw.point((i, j), (a, b, c)) image.save("ans.jpg", "JPEG") del draw