kiva.abstract_graphics_context module¶
-
class
kiva.abstract_graphics_context.
AbstractGraphicsContext
[source]¶ Bases:
object
Abstract Base Class for Kiva Graphics Contexts
-
abstract
arc
(x, y, radius, start_angle, end_angle, cw=False)[source]¶ Draw a circular arc of the given radius, centered at
(x, y)
The angular span is from
start_angle
toend_angle
, where angles are measured counter-clockwise from the positive X axis.If “cw” is True, then the arc is swept from the
end_angle
back to thestart_angle
(it does not change the sense in which the angles are measured, but may affect rendering based on winding number calculations).
-
abstract
arc_to
(x1, y1, x2, y2, radius)[source]¶ Draw a circular arc from current point to tangent line
The arc is tangent to the line from the current point to
(x1, y1)
, and it is also tangent to the line from(x1, y1)
to(x2, y2)
.(x1, y1)
is the imaginary intersection point of the two lines tangent to the arc at the current point and at(x2, y2)
.If the tangent point on the line from the current point to
(x1, y1)
is not equal to the current point, a line is drawn to it. Depending on the suppliedradius
, the tangent point on the line from(x1, y1)
to(x2, y2)
may or may not be(x2, y2)
. In either case, the arc is drawn to the point of tangency, which is also the new current point.Consider the common case of rounding a rectangle’s upper left corner. Let “r” be the radius of rounding. Let the current point be
(x_left + r, y_top)
. Then(x2, y2)
would be(x_left, y_top - radius)
, and(x1, y1)
would be(x_left, y_top)
.
-
abstract
clear_rect
(rect)[source]¶ Set rectangle to background colour
Note
This may not be available in some backends, such as PDF or PostScript.
-
abstract
concat_ctm
(matrix)[source]¶ Concatenate an arbitrary affine matrix to the current transformation matrix.
-
abstract
curve_to
(x1, y1, x2, y2, end_x, end_y)[source]¶ Draw a cubic bezier curve
The curve starts from the current point and ends at
(end_x, end_y)
, with control points(x1, y1)
and(x2, y2)
.
-
abstract
draw_image
(image, rect=None)[source]¶ Render an image into a rectangle
- Parameters
image – An image. Can be a numpy array, a PIL
Image
instance, or anotherGraphicsContext
instance.rect – A tuple (x, y, w, h). If not specified then the bounds of the the graphics context are used as the rectangle.
-
abstract
draw_path
(draw_mode=5)[source]¶ Draw the current path with the specified mode
- Parameters
draw_mode – One of
FILL
,EOF_FILL
,STROKE
,FILL_STROKE
, orEOF_FILL_STROKE
. Each is defined inkiva.api
.
-
abstract
draw_rect
(rect, draw_mode=5)[source]¶ Draw a rectangle with the specified mode
- Parameters
rect – A tuple (x, y, w, h)
draw_mode – One of
FILL
,EOF_FILL
,STROKE
,FILL_STROKE
, orEOF_FILL_STROKE
. Each is defined inkiva.api
.
-
abstract
eof_fill_path
()[source]¶ Fill the current path with fill settings from the current state
This fills using the even-odd rule filling algorithm
-
abstract
fill_path
()[source]¶ Fill the current path with fill settings from the current state
This fills using the nonzero rule filling algorithm
-
abstract
flush
()[source]¶ Render all pending draw operations immediately
This only makes sense in GUI window contexts (eg. Quartz or QPainter).
-
abstract
get_character_spacing
()[source]¶ Get the current spacing between characters when drawing text
-
abstract
get_fill_color
()[source]¶ Get the color used to fill the region bounded by a path or when drawing text.
-
abstract
get_full_text_extent
(string)[source]¶ Get the text extent as a tuple (w, h, x, y)
Note
This method is deprecated: you should use
get_text_extent()
instead. This order is provided for backwards-compatibility with existing Enable code.
-
abstract
get_image_interpolation
()[source]¶ Get the type of interpolation to use when scaling images
-
abstract
get_text_extent
(text)[source]¶ Return a rectangle which encloses the specified text
The rectangle (x, y, w, h) is relative to an origin which is at the baseline of the text and at the left of the first character rendered. In other words, x is the leading and y the descent.
-
abstract
line_set
(starts, ends)[source]¶ Adds a set of disjoint lines as a new subpath.
- Parameters
starts – an Nx2 array of x,y pairs
ends – an Nx2 array of x,y pairs
starts
andends
arrays should have the same length. The current point is moved to the last point inends
.
-
abstract
linear_gradient
(x1, y1, x2, y2, stops, spread_method, units='userSpaceOnUse')[source]¶ Modify the fill color to be a linear gradient
- Parameters
x1 – The X starting point of the gradient.
y1 – The Y starting point of the gradient.
x2 – The X ending point of the gradient.
y3 – The Y ending point of the gradient.
stops – An array/sequence of color stops ((offset, r, g, b, a), (offset2, r2, g2, b2, a2), …) where offset is some number between 0 and 1 inclusive and the entries are sorted from lowest offset to highest.
spread_method – One of the following strings: “pad”, “reflect”, “repeat”.
units – One of the following strings: “userSpaceOnUse”, “objectBoundingBox”.
-
abstract
lines
(points)[source]¶ Adds a series of lines as a new subpath.
- Parameters
points – an Nx2 sequence of (x, y) pairs
The current point is moved to the last point in
points
.
-
abstract
quad_curve_to
(cp_x, cp_y, end_x, end_y)[source]¶ Draw a quadratic bezier curve
The curve starts the current point and ends at
(end_x, end_y)
, with control point(cp_x, cp_y)
-
abstract
radial_gradient
(cx, cy, r, fx, fy, stops, spread_method, units='userSpaceOnUse')[source]¶ Modify the fill color to be a radial gradient
- Parameters
cx – The X center point of the gradient.
cy – The Y center point of the gradient.
r – The radius of the gradient
fx – The X ending point of the gradient.
fy – The Y ending point of the gradient.
stops – An array/sequence of color stops ((offset, r, g, b, a), (offset2, r2, g2, b2, a2), …) where offset is some number between 0 and 1 inclusive and the entries are sorted from lowest offset to highest.
spread_method – One of the following strings: “pad”, “reflect”, “repeat”.
units – One of the following strings: “userSpaceOnUse”, “objectBoundingBox”.
-
abstract
rect
(x, y, w, h)[source]¶ Add a rectangle as a new sub-path
- Parameters
x – The left X coordinate of the rectangle
y – The bottom Y coordinate of the rectangle
w – The width of the rectangle
h – The height of the rectangle
-
abstract
rects
(rect_array)[source]¶ Add a sequence of rectangles as separate sub-paths.
- Parameters
rect_array – An Nx4 array of (x, y, w, h) quadruples
-
abstract
rotate_ctm
(angle)[source]¶ Concatenate a rotation to the current transformation matrix.
- Parameters
angle – An angle in radians.
-
abstract
save
(filename, file_format=None, pil_options=None)[source]¶ Save the graphics context to a file
Data is always saved in RGB or RGBA format, and converted to that format if not already in it.
If the
file_format
argument is None, then the file format is inferred from thefilename
extension, and so is not usually needed.The
pil_options
argument is a dictionary of format-specific options that can be passed directly to PIL’s image file writers. For example, this can be used to control the compression level of JPEG or PNG output. Unrecognized options are silently ignored.
-
abstract
scale_ctm
(x_scale, y_scale)[source]¶ Concatenate a scaling to the current transformation matrix
-
abstract
select_font
(name, size=12, style='regular', encoding=None)[source]¶ Set the font based on the provided parameters
- Parameters
name – The name of a font. E.g.: “Times New Roman”
size – The font size in points.
style – One of “regular”, “bold”, “italic”, “bold italic”
encoding –
A 4 letter encoding name. Common ones are:
”unic” – unicode
”armn” – apple roman
”symb” – symbol
Not all fonts support all encodings. If none is specified, fonts that have unicode encodings default to unicode. Symbol is the second choice. If neither are available, the encoding defaults to the first one returned in the FreeType charmap list for the font face.
-
abstract
set_character_spacing
(spacing)[source]¶ Set the spacing between characters when drawing text
- Parameters
spacing (float) – units of space extra space to add between text coordinates. It is specified in text coordinate system.
-
abstract
set_fill_color
(color)[source]¶ Set the color used to fill the region bounded by a path or when drawing text.
- Parameters
color – A three or four component tuple describing a color (R, G, B[, A]). Each color component should be in the range [0.0, 1.0]
-
abstract
set_font
(font)[source]¶ Set the font with a
kiva.fonttools.font.Font
object
-
abstract
set_image_interpolation
(interpolation)[source]¶ Set the type of interpolation to use when scaling images.
- Parameters
interpolation – One of “nearest”, “bilinear”, “bicubic”, “spline16”, “spline36”, “sinc64”, “sinc144”, “sinc256”, “blackman64”, “blackman100”, or “blackman256”.
-
abstract
set_line_cap
(line_cap)[source]¶ Set the style of cap to use a path ends
- Parameters
line_cap – One of
CAP_BUTT
,CAP_ROUND
, orCAP_SQUARE
. Each is defined inkiva.api
.
-
abstract
set_line_dash
(line_dash, phase=0)[source]¶ Set the dash style to use when stroking a path
- Parameters
line_dash – An even-lengthed tuple of floats that represents the width of each dash and gap in the dash pattern.
phase (float) – Specifies how many units into the dash pattern to start.
-
abstract
set_line_join
(line_join)[source]¶ Set the style of join to use a path corners
- Parameters
line_join – Options are
JOIN_ROUND
,JOIN_BEVEL
, orJOIN_MITER
. Each is defined inkiva.api
.
-
abstract
set_miter_limit
(miter_limit)[source]¶ Set the limit at which mitered joins are flattened.
Only applicable when the line join type is set to
JOIN_MITER
.
-
abstract
set_stroke_color
(color)[source]¶ Set the color used when stroking a path
- Parameters
color – A three or four component tuple describing a color (R, G, B[, A]). Each color component should be in the range [0.0, 1.0]
-
abstract
set_text_drawing_mode
(draw_mode)[source]¶ Set the drawing mode to use with text
- Parameters
draw_mode – Allowed values are
TEXT_FILL
,TEXT_STROKE
,TEXT_FILL_STROKE
,TEXT_INVISIBLE
,TEXT_FILL_CLIP
,TEXT_STROKE_CLIP
,TEXT_FILL_STROKE_CLIP
, orTEXT_CLIP
. Each is defined inkiva.api
.
-
abstract
set_text_matrix
(text_matrix)[source]¶ Set the transformation matrix to use when drawing text
-
abstract
set_text_position
(x, y)[source]¶ Set the current point for drawing text
This point is on the baseline of the text
-
abstract
show_text_at_point
(x, y)[source]¶ Draw text at the absolute position specified by the point
-
abstract
synchronize
()[source]¶ A deferred version of flush()
Also only relevant in window contexts.
-
abstract
-
class
kiva.abstract_graphics_context.
EnhancedAbstractGraphicsContext
[source]¶ Bases:
kiva.abstract_graphics_context.AbstractGraphicsContext
ABC for graphics contexts which provide additional methods
-
abstract
draw_marker_at_points
(point_array, size, marker=1)[source]¶ Draw a marker at a collection of points
- Parameters
point_array – An Nx2 array of x,y points
size – The size of the marker in points.
marker – One of
NO_MARKER
,SQUARE_MARKER
,DIAMOND_MARKER
,CIRCLE_MARKER
,CROSSED_CIRCLE_MARKER
,CROSS_MARKER
,TRIANGLE_MARKER
,INVERTED_TRIANGLE_MARKER
,PLUS_MARKER
,DOT_MARKER
, orPIXEL_MARKER
. Each is defined inkiva.api
.
- Returns
result – True if markers were drawn, False otherwise.
- Return type
-
abstract
draw_path_at_points
(point_array, compiled_path, draw_mode=5)[source]¶ Draw a compiled path at a collection of points
The starting point of the paths are specified by the points, and the drawing mode is specified by the third argument.
- Parameters
point_array – An Nx2 array of x,y points
compiled_path – A
CompiledPath
instance.draw_mode – One of
FILL
,EOF_FILL
,STROKE
,FILL_STROKE
, orEOF_FILL_STROKE
. Each is defined inkiva.api
.
-
abstract