Skip to content

Commit 81f4754

Browse files
committed
Helpers
1 parent d214eef commit 81f4754

File tree

2 files changed

+50
-22
lines changed

2 files changed

+50
-22
lines changed

SwiftDraw/NSImage+Image.swift

Lines changed: 26 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -35,25 +35,40 @@ import CoreGraphics
3535

3636
public extension NSImage {
3737

38-
convenience init?(svgNamed name: String, in bundle: Bundle = Bundle.main) {
38+
convenience init?(svgNamed name: String, in bundle: Bundle = .main) {
3939
guard let image = Image(named: name, in: bundle) else { return nil }
40+
self.init(image)
41+
}
42+
43+
@objc(initWithSVGData:)
44+
convenience init?(_ data: Data) {
45+
guard let image = Image(data: data) else { return nil }
46+
self.init(image)
47+
}
48+
49+
@objc(initWithContentsOfSVGFile:)
50+
convenience init?(contentsOfSVGFile path: String) {
51+
guard let image = Image(fileURL: URL(fileURLWithPath: path)) else { return nil }
52+
self.init(image)
53+
}
54+
55+
@objc(svgNamed:)
56+
static func _svgNamed(_ name: String) -> NSImage? {
57+
NSImage(svgNamed: name, in: .main)
58+
}
4059

60+
@objc(svgNamed:inBundle:)
61+
static func _svgNamed(_ name: String, in bundle: Bundle) -> NSImage? {
62+
NSImage(svgNamed: name, in: bundle)
63+
}
64+
65+
convenience init(_ image: Image) {
4166
self.init(size: image.size, flipped: true) { rect in
4267
guard let ctx = NSGraphicsContext.current?.cgContext else { return false }
4368
ctx.draw(image, in: CGRect(x: 0, y: 0, width: rect.size.width, height: rect.size.height))
4469
return true
4570
}
4671
}
47-
48-
@objc
49-
static func svgNamed(_ name: String, inBundle: Bundle) -> NSImage? {
50-
NSImage(svgNamed: name, in: inBundle)
51-
}
52-
53-
@objc
54-
static func svgNamed(_ name: String) -> NSImage? {
55-
NSImage(svgNamed: name, in: .main)
56-
}
5772
}
5873

5974
public extension Image {

SwiftDraw/UIImage+Image.swift

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -34,24 +34,37 @@ import UIKit
3434

3535
public extension UIImage {
3636

37-
convenience init?(svgNamed name: String, in bundle: Bundle = Bundle.main) {
38-
guard let image = Image(named: name, in: bundle)?.rasterize(),
39-
let cgImage = image.cgImage else {
40-
return nil
41-
}
37+
convenience init?(svgNamed name: String, in bundle: Bundle = .main) {
38+
guard let image = Image(named: name, in: bundle) else { return nil }
39+
self.init(image)
40+
}
4241

43-
self.init(cgImage: cgImage, scale: image.scale, orientation: image.imageOrientation)
42+
@objc(initWithSVGData:)
43+
convenience init?(svgData: Data) {
44+
guard let image = Image(data: svgData) else { return nil }
45+
self.init(image)
4446
}
4547

46-
@objc
47-
static func svgNamed(_ name: String, inBundle: Bundle) -> UIImage? {
48-
UIImage(svgNamed: name, in: inBundle)
48+
@objc(initWithContentsOfSVGFile:)
49+
convenience init?(contentsOfSVGFile path: String) {
50+
guard let image = Image(fileURL: URL(fileURLWithPath: path)) else { return nil }
51+
self.init(image)
4952
}
5053

51-
@objc
52-
static func svgNamed(_ name: String) -> UIImage? {
54+
@objc(svgNamed:)
55+
static func _svgNamed(_ name: String) -> UIImage? {
5356
UIImage(svgNamed: name, in: .main)
5457
}
58+
59+
@objc(svgNamed:inBundle:)
60+
static func _svgNamed(_ name: String, in bundle: Bundle) -> UIImage? {
61+
UIImage(svgNamed: name, in: bundle)
62+
}
63+
64+
convenience init(_ image: Image) {
65+
let image = image.rasterize()
66+
self.init(cgImage: image.cgImage!, scale: image.scale, orientation: image.imageOrientation)
67+
}
5568
}
5669

5770
public extension Image {

0 commit comments

Comments
 (0)