-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathimg_modify.py
58 lines (54 loc) · 1.37 KB
/
img_modify.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
from PIL import Image, ImageFilter
import sys
def origin(file_name):
img = Image.open(file_name)
save_loc = 'modified/'
img.convert('RGB').save(save_loc + file_name)
def crop(file_name, quad):
img = Image.open(file_name)
width, height = img.size
x1 = y1 = 0
x2 = width/2
y2 = height/2
if quad % 2 == 0:
x1 = width/2
x2 = width
if quad > 2:
y1 = height/2
y2 = height
area = (x1, y1, x2, y2)
cropped_img = img.crop(area)
save_loc = 'modified/'
cropped_img.convert('RGB').save(save_loc + file_name)
def blur(file_name, quads, b):
img = Image.open(file_name)
width, height = img.size
for quad in quads:
x1 = y1 = 0
x2 = width/2
y2 = height/2
if quad % 2 == 0:
x1 = width/2
x2 = width
if quad > 2:
y1 = height/2
y2 = height
coords = (x1, y1, x2, y2)
cropped_img = img.crop(coords)
blurred_img = cropped_img.filter(ImageFilter.GaussianBlur(radius=b))
img.paste(blurred_img, coords)
save_loc = 'modified/'
img.convert('RGB').save(save_loc + file_name)
if __name__ == "__main__":
file_name = sys.argv[1]
request = sys.argv[2]
if request == "original":
origin(file_name)
elif request == "show":
quadrants = sys.argv[3]
crop(file_name, int(quadrants))
elif request == "blur":
quadrants = sys.argv[3].split(",")
blur_intensity = sys.argv[4]
quadrants = [int(x) for x in quadrants]
blur(file_name, quadrants, int(blur_intensity))