mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-10-16 07:19:13 +08:00
56 lines
1.2 KiB
Python
Executable File
56 lines
1.2 KiB
Python
Executable File
#!/usr/bin/env python
|
|
|
|
"""
|
|
usage: %prog width height bg_color hatch_color [color alpha stop_pos] +
|
|
"""
|
|
|
|
from __future__ import division
|
|
|
|
import sys
|
|
import cairo
|
|
from math import pi
|
|
|
|
assert sys.version_info[:2] >= ( 2, 4 )
|
|
|
|
def parse_css_color( color ):
|
|
if color.startswith( '#' ):
|
|
color = color[1:]
|
|
if len( color ) == 3:
|
|
r = int( color[0], 16 )
|
|
g = int( color[1], 16 )
|
|
b = int( color[2], 16 )
|
|
elif len( color ) == 6:
|
|
r = int( color[0:2], 16 )
|
|
g = int( color[2:4], 16 )
|
|
b = int( color[4:6], 16 )
|
|
else:
|
|
raise Exception( "Color should be 3 hex numbers" )
|
|
return r/256, g/256, b/256
|
|
|
|
size = int( sys.argv[1] )
|
|
|
|
|
|
surface = cairo.ImageSurface( cairo.FORMAT_ARGB32, size, size )
|
|
c = cairo.Context( surface )
|
|
|
|
c.set_line_width( 1 )
|
|
|
|
c.arc( size / 2.0, size / 2.0, ( size - 1 ) / 2.0, 0, 2 * pi )
|
|
|
|
c.set_source_rgb( *parse_css_color( sys.argv[2] ) )
|
|
c.fill_preserve()
|
|
|
|
c.set_source_rgb( *parse_css_color( sys.argv[3] ) )
|
|
c.stroke()
|
|
|
|
t = size / 4.0
|
|
|
|
arrow = sys.argv[4]
|
|
if arrow == 'right':
|
|
c.move_to( t + 1, t )
|
|
c.line_to( 3*t - 1, 2*t )
|
|
c.line_to( t + 1, 3*t )
|
|
c.stroke()
|
|
|
|
surface.write_to_png( "/dev/stdout" )
|