Swiftpack.co - fwcd/swift-graphics as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by fwcd.
fwcd/swift-graphics v2.1.0
Cross-platform 2D graphics library for Swift
⭐️ 18
🕓 15 weeks ago
linux windows android
.package(url: "https://github.com/fwcd/swift-graphics.git", from: "v2.1.0")

Swift Graphics


2D drawing library for Swift with multiple backends, currently including

  • Cairo (cross-platform)
  • Core Graphics (Apple platforms)


import PlatformGraphics
import Utils

// Create a new image and a graphics context
let ctx = try PlatformGraphicsContext(width: 300, height: 300)

// Draw some shapes
ctx.draw(line: LineSegment(fromX: 20, y: 20, toX: 50, y: 30))
ctx.draw(rect: Rectangle(fromX: 80, y: 90, width: 10, height: 40, color: Colors.yellow))
ctx.draw(text: Text("Test", at: Vec2(x: 0, y: 15)))
ctx.draw(ellipse: Ellipse(centerX: 150, y: 80, radius: 40))
ctx.draw(polygon: Polygon(points: [
    Vec2(x: 210.0, y: 150.0),
    Vec2(x: 100.0, y: 200.0),
    Vec2(x: 170.0, y: 250.0)
], isFilled: false))

// Encode the image to a byte buffer
let image = try ctx.makeImage()
let data = try image.pngEncoded()

The full example can be found in Snippets/DrawShapes.swift. To run it, invoke

swift run DrawShapes Output/shapes.png

The resulting PNG will be written to Output/shapes.png.

System Dependencies

  • Swift 5.7+
  • For the Cairo backend (required on Linux, optional on macOS):
    • Debian: apt-get install libcairo2-dev
    • macOS: brew install cairo


swift build


swift test


Stars: 18
Last commit: 5 weeks ago
jonrohan Something's broken? Yell at me @ptrpavlik. Praise and feedback (and money) is also welcome.

Release Notes

Version 2.0.1
22 weeks ago

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics