Skip to content

Releases: swhitty/SwiftDraw

Swift 5.7 (iOS12+, macOS 10.14+)

14 Nov 11:50
bd99ada
Compare
Choose a tag to compare

Removes support for older OS and Swift versions.

SwiftDraw now supports:

  • Swift 5.7+
  • iOS 12+
  • macOS 10.14+

Fixes issue #32 where some SFSymbols would not correctly wind evenodd paths.

Preserve all SFSymbol classes

30 Oct 22:02
73aef36
Compare
Choose a tag to compare

Bug fix release that fixes a few issues

  • Only wind .nonZero paths that are filled #31
  • Correctly pad 3 digit hex colors #24
  • Flip base64 images #26
  • Preserve all SFSymbol classes #27

Fix Typo

18 Aug 23:25
3526a94
Compare
Choose a tag to compare

Fixes typo #23. 🙏🏻 thanks @2n

SFSymbol Multicolor

02 Jul 06:13
6dcda6c
Compare
Choose a tag to compare

Includes changes

swiftdraw, version 0.14.1
copyright (c) 2023 Simon Whitty

usage: swiftdraw <file.svg> [--format png | pdf | jpeg | swift | sfsymbol] [--size wxh] [--scale 1x | 2x | 3x]

<file> svg file to be processed

Options:
 --format      format to output image: png | pdf | jpeg | swift | sfsymbol
 --size        size of output image: 100x200
 --scale       scale of output image: 1x | 2x | 3x
 --insets      crop inset of output image: top,left,bottom,right
 --precision   maximum number of decimal places
 --output      optional path of output file

 --hideUnsupportedFilters   hide elements with unsupported filters.

Available keys for --format swift:
 --api                api of generated code:  appkit | uikit

Available keys for --format sfymbol:
 --insets             alignment of regular variant: top,left,bottom,right | auto
 --ultralight         svg file of ultralight variant
 --ultralightInsets   alignment of ultralight variant: top,left,bottom,right | auto
 --black              svg file of black variant
 --blackInsets        alignment of black variant: top,left,bottom,right | auto

SFSymbol Multicolor

27 May 04:42
6b5471b
Compare
Choose a tag to compare

Includes changes

swiftdraw, version 0.14.0
copyright (c) 2023 Simon Whitty

usage: swiftdraw <file.svg> [--format png | pdf | jpeg | swift | sfsymbol] [--size wxh] [--scale 1x | 2x | 3x]

<file> svg file to be processed

Options:
 --format      format to output image: png | pdf | jpeg | swift | sfsymbol
 --size        size of output image: 100x200
 --scale       scale of output image: 1x | 2x | 3x
 --insets      crop inset of output image: top,left,bottom,right
 --precision   maximum number of decimal places
 --output      optional path of output file

 --hideUnsupportedFilters   hide elements with unsupported filters.

Available keys for --format swift:
 --api                api of generated code:  appkit | uikit

Available keys for --format sfymbol:
 --insets             alignment of regular variant: top,left,bottom,right | auto
 --ultralight         svg file of ultralight variant
 --ultralightInsets   alignment of ultralight variant: top,left,bottom,right | auto
 --black              svg file of black variant
 --blackInsets        alignment of black variant: top,left,bottom,right | auto

SFSymbol

03 Jan 00:25
cabfd9f
Compare
Choose a tag to compare

Adds optional --output to Command-line tool. If provided this path is used, otherwise a suffix is automatically appended to input path.

Fixes bugs

  • UIImage was scaled twice #12.
  • fill-rule was defaulting to evenodd when it should be nonzero
  • macCatalyst support
  • Better support for stroke gradients #17
swiftdraw, version 0.13.2
copyright (c) 2022 Simon Whitty

usage: swiftdraw <file.svg> [--format png | pdf | jpeg | swift | sfsymbol] [--size wxh] [--scale 1x | 2x | 3x]

<file> svg file to be processed

Options:
 --format      format to output image: png | pdf | jpeg | swift | sfsymbol
 --size        size of output image: 100x200
 --scale       scale of output image: 1x | 2x | 3x
 --insets      crop inset of output image: top,left,bottom,right
 --precision   maximum number of decimal places
 --output      optional path of output file

 --hideUnsupportedFilters   hide elements with unsupported filters.

Available keys for --format swift:
 --api                api of generated code:  appkit | uikit

Available keys for --format sfymbol:
 --insets             alignment of regular variant: top,left,bottom,right | auto
 --ultralight         svg file of ultralight variant
 --ultralightInsets   alignment of ultralight variant: top,left,bottom,right | auto
 --black              svg file of black variant
 --blackInsets        alignment of black variant: top,left,bottom,right | auto

SFSymbol

07 Oct 20:10
1201e6c
Compare
Choose a tag to compare

Adds optional --output to Command-line tool. If provided this path is used, otherwise a suffix is automatically appended to input path.

Fixes bugs

  • UIImage was scaled twice #12.
  • fill-rule was defaulting to evenodd when it should be nonzero
  • macCatalyst support
swiftdraw, version 0.13.2
copyright (c) 2022 Simon Whitty

usage: swiftdraw <file.svg> [--format png | pdf | jpeg | swift | sfsymbol] [--size wxh] [--scale 1x | 2x | 3x]

<file> svg file to be processed

Options:
 --format      format to output image: png | pdf | jpeg | swift | sfsymbol
 --size        size of output image: 100x200
 --scale       scale of output image: 1x | 2x | 3x
 --insets      crop inset of output image: top,left,bottom,right
 --precision   maximum number of decimal places
 --output      optional path of output file

 --hideUnsupportedFilters   hide elements with unsupported filters.

Available keys for --format swift:
 --api                api of generated code:  appkit | uikit

Available keys for --format sfymbol:
 --insets             alignment of regular variant: top,left,bottom,right | auto
 --ultralight         svg file of ultralight variant
 --ultralightInsets   alignment of ultralight variant: top,left,bottom,right | auto
 --black              svg file of black variant
 --blackInsets        alignment of black variant: top,left,bottom,right | auto

SFSymbol

31 Aug 22:45
e1317c1
Compare
Choose a tag to compare

Adds optional --output to Command-line tool. If provided this path is used, otherwise a suffix is automatically appended to input path.

Fixes bugs

  • UIImage was scaled twice #12.
  • fill-rule was defaulting to evenodd when it should be nonzero
swiftdraw, version 0.13.1
copyright (c) 2022 Simon Whitty

usage: swiftdraw <file.svg> [--format png | pdf | jpeg | swift | sfsymbol] [--size wxh] [--scale 1x | 2x | 3x]

<file> svg file to be processed

Options:
 --format      format to output image: png | pdf | jpeg | swift | sfsymbol
 --size        size of output image: 100x200
 --scale       scale of output image: 1x | 2x | 3x
 --insets      crop inset of output image: top,left,bottom,right
 --precision   maximum number of decimal places
 --output      optional path of output file

 --hideUnsupportedFilters   hide elements with unsupported filters.

Available keys for --format swift:
 --api                api of generated code:  appkit | uikit

Available keys for --format sfymbol:
 --insets             alignment of regular variant: top,left,bottom,right | auto
 --ultralight         svg file of ultralight variant
 --ultralightInsets   alignment of ultralight variant: top,left,bottom,right | auto
 --black              svg file of black variant
 --blackInsets        alignment of black variant: top,left,bottom,right | auto

SF Symbol

25 Aug 07:53
8b06511
Compare
Choose a tag to compare

Renames SwiftDraw.Image -> SwiftDraw.SVG avoiding name collisions with SwiftUI.Image.

Updates command line tool:

  • officially support SF Symbol creation using --format sfsymbol
  • add ability to crop or align images with --insets 10,0,0,10
  • adds AppKit support with --format swift --api appkit
  • fixes PDFs rendering with unsupported transparency
copyright (c) 2022 Simon Whitty

usage: swiftdraw <file.svg> [--format png | pdf | jpeg | swift | sfsymbol] [--size wxh] [--scale 1x | 2x | 3x]

<file> svg file to be processed

Options:
 --format      format to output image: png | pdf | jpeg | swift | sfsymbol
 --size        size of output image: 100x200
 --scale       scale of output image: 1x | 2x | 3x
 --insets      crop inset of output image: top,left,bottom,right
 --precision   maximum number of decimal places

 --hideUnsupportedFilters   hide elements with unsupported filters.

Available keys for --format swift:
 --api                api of generated code:  appkit | uikit

Available keys for --format sfymbol:
 --insets             alignment of regular variant: top,left,bottom,right | auto
 --ultralight         svg file of ultralight variant
 --ultralightInsets   alignment of ultralight variant: top,left,bottom,right | auto
 --black              svg file of black variant
 --blackInsets        alignment of black variant: top,left,bottom,right | auto

SFSymbol & Style Sheet Support

21 Aug 23:21
9d61888
Compare
Choose a tag to compare

SFSymbol

Adds experimental sfsymbol support to command line tool. SVGs can be converted to SFSymbol template which can be imported directly into Xcode.

$ swiftdraw alert_fill.svg --format sfsymbol

SwiftDraw automatically expands strokes (on macOS) and winds subpaths using the non zero rule to create a compatible symbol template.

Style Sheet

Adds style sheet support for simple selectors: class, element and id.

.s {
   stroke: darkgray;
   stroke-width: 5 /* asd */;
   fill-opacity: 0.3
}

#a {
   fill: yellow;
}

.b {
   fill: blue;
}

rect {
   fill: pink;
}