Swiftpack.co -  richardpiazza/VectorPlus as Swift Package
Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
richardpiazza/VectorPlus
A utility & library for converting SVG paths to Core Graphics images.
.package(url: "https://github.com/richardpiazza/VectorPlus.git", from: "0.3.0")

VectorPlus

A utility & library for interacting with SVG documents.

Twitter: @richardpiazza

Usage

VectorPlus is distributed using the Swift Package Manager. To install it into a project, add it as a dependency within your Package.swift manifest:

let package = Package(
    ...
    dependencies: [
        .package(url: "https://github.com/richardpiazza/VectorPlus.git", from: "0.3.0")
    ],
    ...
)

Then import the VectorPlus packages wherever you'd like to use it:

import VectorPlus

Packages

VectorPlus

VectorPlus acts primarily as a wrapper over SwiftSVG providing extensions for interacting with:

  • CoreGraphics
  • UIKit
  • AppKit
  • SwiftUI

When linked to a target that supports one of these frameworks, multiple options become available.

CoreGraphics

  • CGMutablePath.addCommand(_:from:to:): Adds a Path.Command to the mutable path. The addition of the Rects allow for correct placement and scaling.

  • CGContext.render(path:from:to:) throws: Rendered a Path in the given context. Uses information about fills and strokes to fill and/or stroke the path.

UIKit

  • SVG.uiImage(size:) -> UIImage?: A CoreGraphics rendered UIImage representation of the SVG paths.

  • SVG.pngData(size:) -> Data?: A Data representation of the UIImage.

  • SVGImageView: A UIImageView subclass that supports the assignment of an SVG object. The .image will automatically be generated using the view bounds.

AppKit

  • SVG.nsImage(size:) -> NSImage?: A CoreGraphics rendered NSImage representation of the SVG paths.

  • SVG.pngData(size:) -> Data?: A Data representation of the NSImage.

SwiftUI

  • SVGView(svg:): A SwiftUI.View that renders a SVG document.

Command Line Interface

Inspect

Parses an SVG document and prints out the document description.

Convert

Parses an SVG document and creates a PNG rendered version of the Commands.

Supported conversion options are:

  • absolute: Translates all elements to 'absolute' paths.

  • symbols: Generates an Apple Symbols compatible SVG.

  • uikit: A UIImageView subclass that supports dynamic sizing.

Preview

macOS only

Parses an SVG document displaying the results in an Application window. Do to limitations, this sub-command is only available when the AppKit framework is present.

Render

macOS only

Parses an SVG document and creates a PNG rendered version of the Commands. Do to limitations, this sub-command is only available when the AppKit framework is present.

GitHub

link
Stars: 2
Last commit: 4 weeks ago

Ad: Job Offers

iOS Software Engineer @ Perry Street Software
Perry Street Software is Jack’d and SCRUFF. We are two of the world’s largest gay, bi, trans and queer social dating apps on iOS and Android. Our brands reach more than 20 million members worldwide so members can connect, meet and express themselves on a platform that prioritizes privacy and security. We invest heavily into SwiftUI and using Swift Packages to modularize the codebase.

Submit a free job ad (while I'm testing this). The analytics numbers for this website are here.

Release Notes

VectorPlus 0.3.0
4 weeks ago

This release incorporates the beginning of SwiftUI support. The first component available is SVGView - a View type that supports rendering a SVG document.

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