-
Notifications
You must be signed in to change notification settings - Fork 9
/
pillow_full_cycle.py
31 lines (22 loc) · 1000 Bytes
/
pillow_full_cycle.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
from io import BytesIO
from .base import rpartial, root, FullCycleBaseCase
from .pillow import Image, PillowTestCase
class FullCycleCase(FullCycleBaseCase, PillowTestCase):
def runner(self):
im = Image.open(root('resources', self.filename))
if self.level > 0:
im = im.transpose(Image.ROTATE_270)
if self.level > 1:
size = (int(im.size[0] * 0.4 + 0.5),
int(im.size[1] * 0.4 + 0.5))
im = self.resize(im, size, Image.BICUBIC)
if self.level > 2:
im = self.gaussian_blur(im, 4)
im.save(BytesIO(), format=self.filetype, quality=85)
# im.save('../_out.{}.pillow.png'.format(self.level))
cases = [
rpartial(FullCycleCase, 0, 'Load+save', 'pineapple.jpeg', 'JPEG'),
rpartial(FullCycleCase, 1, '+transpose', 'pineapple.jpeg', 'JPEG'),
rpartial(FullCycleCase, 2, '+resize', 'pineapple.jpeg', 'JPEG'),
rpartial(FullCycleCase, 3, '+blur', 'pineapple.jpeg', 'JPEG'),
]