@ -0,0 +1,39 @@ |
|||||||
|
How to generate the update_spinner.mng |
||||||
|
|
||||||
|
You will need ImageMagick in your path (the 'convert' executable at least) |
||||||
|
|
||||||
|
Go here: http://preloaders.net/en/circular |
||||||
|
|
||||||
|
Select the base image you want to use. |
||||||
|
|
||||||
|
Image type: APNG |
||||||
|
Transparent background: Yes |
||||||
|
Foreground color: F2A555 (or select a color) |
||||||
|
Animation speed: (default value) |
||||||
|
Preloader size: 16 x 16 |
||||||
|
|
||||||
|
(no Advanced Options changed) |
||||||
|
|
||||||
|
Additional download options: |
||||||
|
|
||||||
|
Check Download as sprites |
||||||
|
|
||||||
|
Press Download now |
||||||
|
|
||||||
|
Rename the file to base.png |
||||||
|
|
||||||
|
convert -dispose 3 -delay 10 base.png -crop 16x16 +repage update_spinner.mng |
||||||
|
|
||||||
|
If you want to use the make_spinner.py (gives worse results): |
||||||
|
|
||||||
|
In http://preloaders.net/en/circular change |
||||||
|
|
||||||
|
Preloader size: 128 x 128 |
||||||
|
|
||||||
|
Press Download now |
||||||
|
|
||||||
|
Rename the file to base.png |
||||||
|
|
||||||
|
convert base.png -crop 128x128+0+0 reload_scaled.png |
||||||
|
|
||||||
|
and use the make_spinner.py . Note that the results aren't very good. |
@ -1,43 +0,0 @@ |
|||||||
#!/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() |
|
||||||
|
|
||||||
|
|
||||||
|
|
Before Width: | Height: | Size: 702 B After Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 612 B After Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 623 B After Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 625 B After Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 673 B After Width: | Height: | Size: 3.2 KiB |