https://github.com/shaps80/SVGRenderer
An SVG renderer using the familiar GraphicsRenderer API.
https://github.com/shaps80/SVGRenderer
Last synced: 11 months ago
JSON representation
An SVG renderer using the familiar GraphicsRenderer API.
- Host: GitHub
- URL: https://github.com/shaps80/SVGRenderer
- Owner: shaps80
- License: mit
- Created: 2018-04-04T18:34:06.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2018-04-19T23:30:55.000Z (about 8 years ago)
- Last Synced: 2025-04-08T11:04:59.838Z (about 1 year ago)
- Language: Swift
- Size: 223 KB
- Stars: 7
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# SVGRenderer
[](https://github.com/Carthage/Carthage)
[](http://cocoapods.org/pods/SVGRenderer)
[](http://cocoapods.org/pods/SVGRenderer)
[](http://cocoadocs.org/docsets/SVGRenderer)
[](http://cocoapods.org/pods/SVGRenderer)
SVGRenderer is a cross-platform (iOS and macOS) library for making SVG's from paths in code.
## Example

Making the SVG above is as easy as drawing a path with a familiar API:
```swift
let string = SVGRenderer(size: CGSize(width: 50, height: 50)).svgString { context in
let frame = context.format.bounds
let path = context.cgContext
path.move(to: NSPoint(x: frame.minX + 24.9, y: frame.minY + 6.5))
path.curve(to: NSPoint(x: frame.minX + 44.5, y: frame.minY + 20.63), controlPoint1: NSPoint(x: frame.minX + 24.89, y: frame.minY + 6.5), controlPoint2: NSPoint(x: frame.minX + 44.5, y: frame.minY + 20.63))
path.line(to: NSPoint(x: frame.minX + 37.01, y: frame.minY + 43.5))
path.line(to: NSPoint(x: frame.minX + 31.85, y: frame.minY + 43.5))
path.curve(to: NSPoint(x: frame.minX + 32.17, y: frame.minY + 41.39), controlPoint1: NSPoint(x: frame.minX + 32.06, y: frame.minY + 42.83), controlPoint2: NSPoint(x: frame.minX + 32.17, y: frame.minY + 42.12))
path.curve(to: NSPoint(x: frame.minX + 24.89, y: frame.minY + 34.17), controlPoint1: NSPoint(x: frame.minX + 32.17, y: frame.minY + 37.4), controlPoint2: NSPoint(x: frame.minX + 28.91, y: frame.minY + 34.17))
path.curve(to: NSPoint(x: frame.minX + 17.62, y: frame.minY + 41.39), controlPoint1: NSPoint(x: frame.minX + 20.87, y: frame.minY + 34.17), controlPoint2: NSPoint(x: frame.minX + 17.62, y: frame.minY + 37.4))
path.curve(to: NSPoint(x: frame.minX + 17.93, y: frame.minY + 43.5), controlPoint1: NSPoint(x: frame.minX + 17.62, y: frame.minY + 42.12), controlPoint2: NSPoint(x: frame.minX + 17.73, y: frame.minY + 42.83))
path.line(to: NSPoint(x: frame.minX + 12.77, y: frame.minY + 43.5))
path.line(to: NSPoint(x: frame.minX + 5.92, y: frame.minY + 20.63))
path.line(to: NSPoint(x: frame.minX + 24.89, y: frame.minY + 6.5))
path.line(to: NSPoint(x: frame.minX + 24.9, y: frame.minY + 6.5))
path.close()
}
print(string)
```
**Output**
```svg
```
## Getting Started
### Installation
**Cocoapods**
```ruby
`pod "SVGRenderer", "1.0.0"`
```
**Carthage**
```ruby
github "shaps80/SVGRenderer" ~> 1.0.0
```
> There are 2 example projects included in the repo. One for iOS and another for OSX.
Simply select the appropriate scheme, build and run.
## Requirements
* Swift 4.0+
* iOS 8.0+
* OSX 10.10+
## Author
Shaps Benkau, shapsuk@me.com
## License
SVGRenderer is available under the MIT license. See the LICENSE file for more info.