.. wxPython Phoenix documentation

   This file was generated by Phoenix's sphinx generator and associated
   tools, do not edit by hand.

   Copyright: (c) 2011-2020 by Total Control Software
   License:   wxWindows License

.. include:: headings.inc

.. currentmodule:: wx.svg._nanosvg

.. highlight:: python



.. _wx.svg._nanosvg.SVGimageBase:

==========================================================================================================================================
|phoenix_title|  **wx.svg._nanosvg.SVGimageBase**
==========================================================================================================================================

A SVGimageBase can be created either from an SVG file or from an in-memory
buffer containing the SVG XML code. The result is a collection of cubic
bezier shapes, with fill, stroke, gradients, paths and other information.

This class is a Cython-based wrapper around the nanosvg ``NSVGimage`` structure,
providing just the basic wrapped functionality from nanosvg. Please see the
:class:`wx.svg.SVGimage` class for a derived implementation that adds
functionality for integrating with wxPython.



|

|class_hierarchy| Class Hierarchy
=================================

.. raw:: html

   <div id="toggleBlock" onclick="return toggleVisibility(this)" class="closed" style="cursor:pointer;">
   <img id="toggleBlock-trigger" src="_static/images/closed.png"/>
   Inheritance diagram for class <strong>SVGimageBase</strong>:
   </div>
   <div id="toggleBlock-summary" style="display:block;"></div>
   <div id="toggleBlock-content" style="display:none;">
   <p class="graphviz">
   <center><img src="_static/images/inheritance/wx.svg._nanosvg.SVGimageBase_inheritance.png" alt="Inheritance diagram of SVGimageBase" usemap="#dummy" class="inheritance"/></center>
   <script type="text/javascript">toggleVisibilityOnLoad(document.getElementById('toggleBlock'))</script>
   <map id="dummy" name="dummy"> <area shape="rect" id="node1" href="wx.svg._nanosvg.SVGimageBase.html" title="wx.svg._nanosvg.SVGimageBase" alt="" coords="5,5,244,35"/> </map> 
   </p>
   </div>

|


|sub_classes| Known Subclasses
==============================

:class:`wx.svg.SVGimage`

|


|method_summary| Methods Summary
================================

================================================================================ ================================================================================
:meth:`~wx.svg._nanosvg.SVGimageBase.CreateFromBytes`                            Loads an SVG image from a bytes object.
:meth:`~wx.svg._nanosvg.SVGimageBase.CreateFromFile`                             Loads an SVG image from a file.
:meth:`~wx.svg._nanosvg.SVGimageBase.Rasterize`                                  Renders the SVG image to a ``bytes`` object as a series of RGBA values.
:meth:`~wx.svg._nanosvg.SVGimageBase.RasterizeToBuffer`                          Renders the SVG image to an existing buffer as a series of RGBA values.
================================================================================ ================================================================================


|


|property_summary| Properties Summary
=====================================

================================================================================ ================================================================================
:attr:`~wx.svg._nanosvg.SVGimageBase.height`                                     Returns the height of the SVG image
:attr:`~wx.svg._nanosvg.SVGimageBase.shapes`                                     A generator that iterates over the :class:`SVGshape` objects that comprise the SVG image
:attr:`~wx.svg._nanosvg.SVGimageBase.width`                                      Returns the width of the SVG image
================================================================================ ================================================================================


|


|api| Class API
===============


.. class:: SVGimageBase(object)

   A SVGimageBase can be created either from an SVG file or from an in-memory
   buffer containing the SVG XML code. The result is a collection of cubic
   bezier shapes, with fill, stroke, gradients, paths and other information.
   
   This class is a Cython-based wrapper around the nanosvg ``NSVGimage`` structure,
   providing just the basic wrapped functionality from nanosvg. Please see the
   :class:`wx.svg.SVGimage` class for a derived implementation that adds
   functionality for integrating with wxPython.

   .. classmethod:: CreateFromBytes(type cls, bytes buffer, str units='px', float dpi=96, bool do_copy=True)

      Loads an SVG image from a bytes object.
      
      :param bytes `buffer`: object containing the SVG data
      :param str `units`: One of: 'px', 'pt', 'pc' 'mm', 'cm', or 'in'
      :param float `dpi`: controls how the unit conversion is done
      :param bool `do_copy`: indicates if the given bytes object should be
          copied to avoid in-place modification. This should be set to ``True``     if the given `buffer` object may ever be reused in any capacity.
          If the given `buffer` will only be used once, and the cost of copying
          it is problematic, then `do_copy` can be set to False.
      
      :rtype: An instance of ``cls`` (usually a :class:`SVGimage`)


   .. classmethod:: CreateFromFile(type cls, str filename, str units='px', float dpi=96)

      Loads an SVG image from a file.
      
      :param str `filename`: Name of the file to load the SVG image from
      :param str `units`: One of: 'px', 'pt', 'pc' 'mm', 'cm', or 'in'
      :param float `dpi`: controls how the unit conversion is done
      
      :rtype: An instance of ``cls`` (usually a :class:`SVGimage`)


   .. method:: Rasterize(self, float tx=0.0, float ty=0.0, float scale=1.0, int width=-1, int height=-1, int stride=-1) -> bytes

      Renders the SVG image to a ``bytes`` object as a series of RGBA values.
      
      :param float `tx`: Image horizontal offset (applied after scaling)
      :param float `ty`: Image vertical offset (applied after scaling)
      :param float `scale`: Image scale
      :param int `width`: width of the image to render, defaults to width from the SVG file
      :param int `height`: height of the image to render, defaults to height from the SVG file
      :param int `stride`: number of bytes per scan line in the destination buffer, typically ``width * 4``
      
      :returns: A bytearray object containing the raw RGBA pixel color values


   .. method:: RasterizeToBuffer(self, buf, float tx=0.0, float ty=0.0, float scale=1.0, int width=-1, int height=-1, int stride=-1) -> bytes

      Renders the SVG image to an existing buffer as a series of RGBA values.
      
      The buffer object must support the Python buffer-protocol, be writable,
      and be at least ``width * height * 4`` bytes long. Possibilities include
      bytearrays, memoryviews, numpy arrays, etc.
      
      :param `buf`: An object supporting the buffer protocol where the RGBA bytes will be written
      :param float `tx`: Image horizontal offset (applied after scaling)
      :param float `ty`: Image vertical offset (applied after scaling)
      :param float `scale`: Image scale
      :param int `width`: width of the image to render, defaults to width from the SVG file
      :param int `height`: height of the image to render, defaults to height from the SVG file
      :param int `stride`: number of bytes per scan line in the destination buffer, typically ``width * 4``


   .. attribute:: height

      Returns the height of the SVG image


   .. attribute:: shapes

      A generator that iterates over the :class:`SVGshape` objects that comprise the SVG image


   .. attribute:: width

      Returns the width of the SVG image


