aboutsummaryrefslogtreecommitdiff
path: root/share/qt/make_spinner.py
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@gmail.com>2012-10-14 20:47:56 +0200
committerWladimir J. van der Laan <laanwj@gmail.com>2012-10-14 20:49:06 +0200
commit485d667748b776a1932e3e14dc1b9dfe2ba841d0 (patch)
tree6a8346def039328a48f365c5b41c6a12d12d3dbe /share/qt/make_spinner.py
parent199d88cf901866f3c2fa2b5bd83074d11ebad02c (diff)
Revert "Merge pull request #1931 from laanwj/2012_10_newicons"
This reverts commit 199d88cf901866f3c2fa2b5bd83074d11ebad02c, reversing changes made to 65bc1573e73791c26472c3177732b7d167aa5bec. License is worse instead of better. Will only accept public domain and MIT-licensed icons from now on.
Diffstat (limited to 'share/qt/make_spinner.py')
-rwxr-xr-xshare/qt/make_spinner.py43
1 files changed, 43 insertions, 0 deletions
diff --git a/share/qt/make_spinner.py b/share/qt/make_spinner.py
new file mode 100755
index 0000000000..136aff3cb7
--- /dev/null
+++ b/share/qt/make_spinner.py
@@ -0,0 +1,43 @@
+#!/usr/bin/env python
+# W.J. van der Laan, 2011
+# Make spinning .mng animation from a .png
+# Requires imagemagick 6.7+
+from __future__ import division
+from os import path
+from PIL import Image
+from subprocess import Popen
+
+SRC='img/reload_scaled.png'
+DST='../../src/qt/res/movies/update_spinner.mng'
+TMPDIR='/tmp'
+TMPNAME='tmp-%03i.png'
+NUMFRAMES=35
+FRAMERATE=10.0
+CONVERT='convert'
+CLOCKWISE=True
+DSIZE=(16,16)
+
+im_src = Image.open(SRC)
+
+if CLOCKWISE:
+ im_src = im_src.transpose(Image.FLIP_LEFT_RIGHT)
+
+def frame_to_filename(frame):
+ return path.join(TMPDIR, TMPNAME % frame)
+
+frame_files = []
+for frame in xrange(NUMFRAMES):
+ rotation = (frame + 0.5) / NUMFRAMES * 360.0
+ if CLOCKWISE:
+ rotation = -rotation
+ im_new = im_src.rotate(rotation, Image.BICUBIC)
+ im_new.thumbnail(DSIZE, Image.ANTIALIAS)
+ outfile = frame_to_filename(frame)
+ im_new.save(outfile, 'png')
+ frame_files.append(outfile)
+
+p = Popen([CONVERT, "-delay", str(FRAMERATE), "-dispose", "2"] + frame_files + [DST])
+p.communicate()
+
+
+