Skip to content

Commit 6eb9367

Browse files
committed
add documentation logo creation script
1 parent 3aeb4f3 commit 6eb9367

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed

docs/logo.py

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
import adaptive
2+
import holoviews
3+
import matplotlib.pyplot as plt
4+
import matplotlib.tri as mtri
5+
from PIL import Image, ImageDraw
6+
holoviews.notebook_extension('matplotlib')
7+
8+
9+
def create_and_run_learner():
10+
def ring(xy):
11+
import numpy as np
12+
x, y = xy
13+
a = 0.2
14+
return x + np.exp(-(x**2 + y**2 - 0.75**2)**2/a**4)
15+
16+
learner = adaptive.Learner2D(ring, bounds=[(-1, 1), (-1, 1)])
17+
adaptive.runner.simple(learner, goal=lambda l: l.loss() < 0.01)
18+
return learner
19+
20+
21+
def plot_learner_and_save(learner, fname):
22+
fig, ax = plt.subplots()
23+
tri = learner.ip().tri
24+
triang = mtri.Triangulation(*tri.points.T, triangles=tri.vertices)
25+
ax.triplot(triang, c='k', lw=0.8)
26+
ax.imshow(learner.plot().Image.I.data, extent=(-0.5, 0.5, -0.5, 0.5))
27+
ax.set_xticks([])
28+
ax.set_yticks([])
29+
plt.savefig(fname, bbox_inches="tight", transparent=True, dpi=300, pad_inches=-0.1)
30+
31+
32+
def add_rounded_corners(fname, rad):
33+
im = Image.open(fname)
34+
circle = Image.new('L', (rad * 2, rad * 2), 0)
35+
draw = ImageDraw.Draw(circle)
36+
draw.ellipse((0, 0, rad * 2, rad * 2), fill=255)
37+
alpha = Image.new('L', im.size, 255)
38+
w, h = im.size
39+
alpha.paste(circle.crop((0, 0, rad, rad)), (0, 0))
40+
alpha.paste(circle.crop((0, rad, rad, rad * 2)), (0, h - rad))
41+
alpha.paste(circle.crop((rad, 0, rad * 2, rad)), (w - rad, 0))
42+
alpha.paste(circle.crop((rad, rad, rad * 2, rad * 2)), (w - rad, h - rad))
43+
im.putalpha(alpha)
44+
return im
45+
46+
47+
if __name__ == '__main__':
48+
learner = create_and_run_learner()
49+
fname = 'source/_static/logo_docs.png'
50+
plot_learner_and_save(learner, fname)
51+
im = add_rounded_corners(fname, rad=200)
52+
im.thumbnail((200, 200), Image.ANTIALIAS) # resize
53+
im.save(fname)

0 commit comments

Comments
 (0)