mirror of
https://github.com/python-pillow/Pillow.git
synced 2024-11-13 21:26:46 +03:00
57 lines
995 B
Python
57 lines
995 B
Python
from PIL import Image
|
|
|
|
import sys, time
|
|
import io
|
|
import threading, queue
|
|
|
|
try:
|
|
format = sys.argv[1]
|
|
except:
|
|
format = "PNG"
|
|
|
|
im = Image.open("Tests/images/lena.ppm")
|
|
im.load()
|
|
|
|
queue = queue.Queue()
|
|
|
|
result = []
|
|
|
|
class Worker(threading.Thread):
|
|
def run(self):
|
|
while True:
|
|
im = queue.get()
|
|
if im is None:
|
|
queue.task_done()
|
|
sys.stdout.write("x")
|
|
break
|
|
f = io.BytesIO()
|
|
im.save(f, format, optimize=1)
|
|
data = f.getvalue()
|
|
result.append(len(data))
|
|
im = Image.open(io.BytesIO(data))
|
|
im.load()
|
|
sys.stdout.write(".")
|
|
queue.task_done()
|
|
|
|
t0 = time.time()
|
|
|
|
threads = 20
|
|
jobs = 100
|
|
|
|
for i in range(threads):
|
|
w = Worker()
|
|
w.start()
|
|
|
|
for i in range(jobs):
|
|
queue.put(im)
|
|
|
|
for i in range(threads):
|
|
queue.put(None)
|
|
|
|
queue.join()
|
|
|
|
print()
|
|
print(time.time() - t0)
|
|
print(len(result), sum(result))
|
|
print(result)
|