Git Product home page Git Product logo

doc2dataset's Issues

Extract SVG images

from svg.path import parse_path, Line
from xml.dom import minidom
from cairosvg import svg2png


def get_xy(z):
  return z.real, z.imag

svg = page.get_svg_image()
svg_doc = minidom.parseString(svg)

for use in svg_doc.getElementsByTagName('use'):
  use.parentNode.removeChild(use)

for path in svg_doc.getElementsByTagName('path'):
    d = path.getAttribute('fill')

    if path.getAttribute('id'):
      path.parentNode.removeChild(path)

svg_root = svg_doc.getElementsByTagName('svg')[0]
w, h = svg_root.getAttribute('width'), svg_root.getAttribute('height')
w = float(w.replace('pt', ''))
h = float(h.replace('pt', ''))

svg_str = str(BeautifulSoup(svg_doc.toxml(), 'lxml').find('svg'))

img = svg2png(file_obj=io.StringIO(svg_str), output_width=w, output_height=h, dpi=90)

img = np.array(Image.open(io.BytesIO(img)))

x, y = np.where(img[:, :, 0]!=0) # coordinates of SVG images

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.