Swift package for recreating images as geometric primitives. Swift port of geometrize C++ library.
TODO:
- add stroke width for line, pilyline and bezier curve;
- multithreading;
- fix architectural fault with passing canvas size to shape factory;
- solve dealing with randomness in tests.
Original README:
Geometrize is a C++ library based on primitive. It recreates images as geometric primitives.
Features
- Geometrize images into shapes.
- Export the results as SVG, JSON and more.
Usage
Refer to the minimal example project and read the documentation. These projects may also be useful references:
Project |
---|
Geometrize App |
Example |
Fuzz Tests |
Unit Tests |
Documentation |
See the top level repo for a listing of all the repositories included in the Geometrize project.
Shape Comparison
The matrix below shows typical results for a combination of circles, triangles, rotated rectangles, rotated ellipses and all supported shapes at 50, 200 and 500 total shapes:
- | 50 Shapes | 200 Shapes | 500 Shapes |
---|---|---|---|
Circles | ![]() |
![]() |
![]() |
Triangles | ![]() |
![]() |
![]() |
Rotated Rectangles | ![]() |
![]() |
![]() |
Rotated Ellipses | ![]() |
![]() |
![]() |
All Shapes | ![]() |
![]() |
![]() |
Screenshots
See the gallery.
Resources
See the Geometrize resources page.
Notes
- Got an idea or suggestion? Open an issue on GitHub, or send Sam a message on Twitter.