Skip to content

Commit 271f334

Browse files
committed
Add solution of 0000
1 parent 3c6f029 commit 271f334

File tree

1 file changed

+62
-0
lines changed

1 file changed

+62
-0
lines changed
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# Author: illuz <iilluzen[at]gmail.com>
2+
# File: add_number_to_image.py
3+
# Create Date: 2015-02-08 23:52:01
4+
# Descripton: Add a number to right top corner of images.
5+
# Will backup the image in ./[file]_bak.[ext]
6+
# Usage: add_number_to_image.py [image] [number]
7+
8+
from PIL import Image, ImageDraw, ImageFont
9+
import sys, shutil
10+
11+
12+
# backup file
13+
# @return nothing
14+
def back_file(filename):
15+
p = filename.rfind('.')
16+
shutil.copyfile(filename, filename[:p] + '_bak' + filename[p:])
17+
18+
19+
# add number to right top corner
20+
# @return nothing
21+
def add_number_to_image(im, num):
22+
xsize, ysize = im.size
23+
left, top = int(xsize / 20.0 * 13), int(xsize / 20.0)
24+
right, bottom = int(xsize / 20.0 * 19), int(xsize / 20.0 * 7)
25+
draw = ImageDraw.Draw(im)
26+
draw.ellipse([left, top, right, bottom], (255, 0, 0))
27+
font=ImageFont.truetype("DroidSansMono.ttf", int(xsize / 20 * 4))
28+
draw.text((left + xsize / 10.0, top + xsize / 30), str(num), (0, 0, 0), font=font)
29+
del draw
30+
31+
32+
# open image and deal font and get Draw
33+
# @return a ImageDraw
34+
def deal(f, num):
35+
if (num == None):
36+
num = 0
37+
if (num > '9'):
38+
num = '9+'
39+
im = Image.open(f)
40+
add_number_to_image(im, num)
41+
im.save(f)
42+
43+
44+
def main():
45+
if len(sys.argv) <= 1:
46+
print "Need at least 1 parameter."
47+
return
48+
for i in range(1, len(sys.argv), 2):
49+
f = sys.argv[i]
50+
n = sys.argv[i + 1] if i + 1 < len(sys.argv) else None
51+
try:
52+
back_file(f)
53+
deal(f, n)
54+
print "Success add number to image file", f
55+
except IOError:
56+
print "Cannot open image", f, '!'
57+
pass
58+
59+
60+
if __name__ == '__main__':
61+
main()
62+

0 commit comments

Comments
 (0)