User:Stonestone/pythonnotes: Difference between revisions

From XPUB & Lens-Based wiki
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
===外援授课区===
===授课区===
<pre>from PIL import Image, ImageDraw, ImageFont
<source lang="python">from PIL import Image, ImageDraw, ImageFont


# Docs: https://docs.python.org/2/library/stringio.html
# Docs: https://docs.python.org/2/library/stringio.html
# If you measure for speed, you should use cStringIO
# If you measure for speed, you should use cStringIO
from cStringIO import StringIO #其实不太懂StringIO这个模块。
from cStringIO import StringIO
import random
import random


Line 33: Line 33:
     # See `StringIO` docs above. `class StringIO.StringIO([buffer])`
     # See `StringIO` docs above. `class StringIO.StringIO([buffer])`
     # StringIO provides a convenient means of working with text in memory using the file API (read, write. etc.).
     # StringIO provides a convenient means of working with text in memory using the file API (read, write. etc.).
     buf = StringIO() #不太懂buf指的是什么。。
     buf = StringIO()
     im.save(buf, format="jpeg")
     im.save(buf, format="jpeg")
     of.write(buf.getvalue()) #of = bucket
     of.write(buf.getvalue()) #of = bucket
Line 40: Line 40:
print "done"
print "done"


</pre>
</source>


===等回复区===
===等回复区===

Latest revision as of 13:12, 8 December 2015

授课区

from PIL import Image, ImageDraw, ImageFont

# Docs: https://docs.python.org/2/library/stringio.html
# If you measure for speed, you should use cStringIO
from cStringIO import StringIO
import random

f = ImageFont.truetype("/Users/Stone/Desktop/Ptah-Regular.otf", size=300)

# `open` is a Python build-in function
# Docs: https://docs.python.org/2/library/functions.html#open
# "frames.mjpeg"(filename) is the first param of open function.
# 'w' for writing (truncating the file if it already exists)
# append 'b' to the mode value to open the file in binary mode, which will improve portability.
of = open("frames.mjpeg", "wb") 

for i in range(100):
    # the value range of `i` is 0 to 99
    p = i/99.0 
    l = p*(1920-50)
    print p , l
    r = random.randint(1,225)
    g = random.randint(220,255)
    b = random.randint(111,225)
    im = Image.new("RGB", (1920,1080) , color=(r,g,b)) #("mode",(size),(color))
    draw = ImageDraw.Draw(im)
    sc=p*255
    tp = 80+(p*1870)
    draw.text((tp,680), str(i), fill=(255,0,0),font=f)
    draw.text((tp-2,680-2), str(i), fill=(0,0,0),font=f)
    draw.text((tp+2,680+2), str(i), fill=(0,0,0),font=f)
    # See `StringIO` docs above. `class StringIO.StringIO([buffer])`
    # StringIO provides a convenient means of working with text in memory using the file API (read, write. etc.).
    buf = StringIO()
    im.save(buf, format="jpeg")
    of.write(buf.getvalue()) #of = bucket

    print i
print "done"

等回复区