-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathl12_imageEvil.py
More file actions
98 lines (70 loc) · 2.48 KB
/
l12_imageEvil.py
File metadata and controls
98 lines (70 loc) · 2.48 KB
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
## image quickie!
## install PIL (Python Imaging Library) first. Supercool lib
import Image ## from Pil !
fImageOrig = "l12/evil.jpg"
im = Image.open(fImageOrig)
print im.size, im.mode
width, height = im.size
## get pixel list
lpix = list(im.getdata())
## get 0-lines
l0 = []
for i in range(0,height,3):
## get all "even" pixels on "even" rows, and all "odd" pixels on "odd" rows
l0.extend(lpix[width*i : width*i + width])
## get 1-lines
l1 = []
for i in range(1,height,3):
## get all "even" pixels on "even" rows, and all "odd" pixels on "odd" rows
l1.extend(lpix[width*i : width*i + width])
## get 2-lines
l2 = []
for i in range(2,height,3):
## get all "even" pixels on "even" rows, and all "odd" pixels on "odd" rows
l2.extend(lpix[width*i : width*i + width])
im0 = Image.new(im.mode, (width, height/3))
im0.putdata(l0)
im0.save("l12/evil_0.jpg")
im1 = Image.new(im.mode, (width, height/3))
im1.putdata(l1)
im1.save("l12/evil_1.jpg")
im2 = Image.new(im.mode, (width, height/3))
im2.putdata(l2)
im2.save("l12/evil_2.jpg")
def getEvenOdd(lpix, width, height):
return getPixels(lpix, width, height, 0)
def getOddEven(lpix, width, height):
return getPixels(lpix, width, height, 1)
def getPixels(lpix, width, height, baseoffset):
thelist = []
for i in range(height):
offset = baseoffset
if (i % 2 == 1):
offset = 1 - baseoffset
## get all "even" pixels on "even" rows, and all "odd" pixels on "odd" rows
thelist.extend(lpix[offset + width*i : offset + width*i + width : 2])
return thelist
l0_even = getEvenOdd(l0, width, height/3)
l0_odd = getOddEven(l0, width, height/3)
im0_even = Image.new(im.mode, (width/2, height/3))
im0_even.putdata(l0_even)
im0_even.save("l12/evil_0_even.jpg")
im0_odd = Image.new(im.mode, (width/2, height/3))
im0_odd.putdata(l0_odd)
im0_odd.save("l12/evil_0_odd.jpg")
l1_even = getEvenOdd(l1, width, height/3)
l1_odd = getOddEven(l1, width, height/3)
im1_even = Image.new(im.mode, (width/2, height/3))
im1_even.putdata(l1_even)
im1_even.save("l12/evil_1_even.jpg")
im1_odd = Image.new(im.mode, (width/2, height/3))
im1_odd.putdata(l1_odd)
im1_odd.save("l12/evil_1_odd.jpg")
l2_even = getEvenOdd(l2, width, height/3)
l2_odd = getOddEven(l2, width, height/3)
im2_even = Image.new(im.mode, (width/2, height/3))
im2_even.putdata(l2_even)
im2_even.save("l12/evil_2_even.jpg")
im2_odd = Image.new(im.mode, (width/2, height/3))
im2_odd.putdata(l2_odd)
im2_odd.save("l12/evil_2_odd.jpg")