~ubuntu-branches/ubuntu/wily/python-imaging/wily

« back to all changes in this revision

Viewing changes to Tests/threaded_save.py

  • Committer: Package Import Robot
  • Author(s): Matthias Klose
  • Date: 2013-01-31 20:49:20 UTC
  • mfrom: (27.1.1 raring-proposed)
  • Revision ID: package-import@ubuntu.com-20130131204920-b5zshy6vgfvdionl
Tags: 1.1.7+1.7.8-1ubuntu1
Rewrite build dependencies to allow cross builds.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
from PIL import Image
 
2
 
 
3
import sys, time
 
4
import io
 
5
import threading, queue
 
6
 
 
7
try:
 
8
    format = sys.argv[1]
 
9
except:
 
10
    format = "PNG"
 
11
 
 
12
im = Image.open("Images/lena.ppm")
 
13
im.load()
 
14
 
 
15
queue = queue.Queue()
 
16
 
 
17
result = []
 
18
 
 
19
class Worker(threading.Thread):
 
20
    def run(self):
 
21
        while 1:
 
22
            im = queue.get()
 
23
            if im is None:
 
24
                queue.task_done()
 
25
                sys.stdout.write("x")
 
26
                break
 
27
            f = io.BytesIO()
 
28
            im.save(f, format, optimize=1)
 
29
            data = f.getvalue()
 
30
            result.append(len(data))
 
31
            im = Image.open(io.BytesIO(data))
 
32
            im.load()
 
33
            sys.stdout.write(".")
 
34
            queue.task_done()
 
35
 
 
36
t0 = time.time()
 
37
 
 
38
threads = 20
 
39
jobs = 100
 
40
 
 
41
for i in range(threads):
 
42
    w = Worker()
 
43
    w.start()
 
44
 
 
45
for i in range(jobs):
 
46
    queue.put(im)
 
47
 
 
48
for i in range(threads):
 
49
    queue.put(None)
 
50
 
 
51
queue.join()
 
52
 
 
53
print()
 
54
print(time.time() - t0)
 
55
print(len(result), sum(result))
 
56
print(result)