SwiftyImage 1.0.0

SwiftyImage 1.0.0

DocsDocumented
TestsTested
LangLanguage SwiftSwift
License MIT
ReleasedLast Release Sep 2016
SPMSupports SPM

Maintained by Suyeol Jeon.


Downloads

Total4,060
Week191
Month820

Installs

Apps94
Apps WeekApps This Week 19
Test Targets11
Test WeekTests This week 2
powered by Segment

GitHub

Stars69
Watchers4
Forks4
Issues0
Contributors1
Pull Requests0

Code

Files1
SizeIntegration Size 24 kb
LOCLines of Code 289


  • By
  • Suyeol Jeon

SwiftyImage

The most sexy way to use images in Swift.

Features

At a Glance

Creating Images
UIImage.size(width: 100, height: 100)
  .color(UIColor.whiteColor())
  .border(color: UIColor.redColor())
  .border(width: 10)
  .corner(radius: 20)
  .image

sample1

UIImage.resizable()
  .color(UIColor.whiteColor())
  .border(color: UIColor.blueColor())
  .border(width: 5)
  .corner(radius: 10)
  .image

sample2

Creating Color Overlayed Image
let image = UIImage(named: "myArrow").with(color: UIColor.blueColor())

Getting Started

SwiftyImage provides a simple way to create images with method chaining.

Step 1. Start Chaining

Method chaining starts from UIImage.size() or UIImage.resizable().

UIImage.size(width: CGFloat, height: CGFloat) // ...
UIImage.size(size: CGSize) // ...
UIImage.resizable() // ...

Step 2. Setting Properties

You can set fill color, border attributes, corner radius, etc.

UIImage.size(width: 100, height: 100)  // fixed size
  .color(UIColor.whiteColor())         // fill color
  .border(color: UIColor.redColor())   // border color
  .border(width: 10)                   // border width
  .corner(radius: 20)                  // corner radius
UIImage.resizable() // resizable image
  .color(UIColor.whiteColor())
  .border(color: UIColor.lightGrayColor())
  .border(width: 1)
  .corner(radius: 5)

Step 3. Generating Image

Use .image at the end of method chaining to generate image.

imageView.image = UIImage.size(width: 100, height: 100)
  .color(UIColor.whiteColor())
  .border(color: UIColor.redColor())
  .border(width: 10)
  .corner(radius: 20)
  .image  // generate UIImage

Methods Available

Start Chaining Method Description
.size(width: CGFloat, height: CGFloat) Start chaining for fixed size image
.size(CGSize) Start chaining for fixed size image
.resizable() Start chaining for resizable image
Setting Property Method Description
.color(UIColor) Set fill color
.border(width: CGFloat) Set border width
.border(color: UIColor) Set border color
.border(alignment: BorderAlignment) Set border alignment. Same with Photoshop’s.
.Inside, .Center, .Outside
.corner(radius: CGFloat) Set all corners radius of image
.corner(topLeft: CGFloat) Set top left corner radius of image
.corner(topRight: CGFloat) Set top right corner radius of image
.corner(bottomLeft: CGFloat) Set bottom left corner radius of image
.corner(bottomRight: CGFloat) Set bottom right corner radius of image
Generating Image Method Description
.image Generate and return image

Play with CGContext

SwiftyImage also provides a simple method to create or manipulate images with CGContext.

Creating Images

let image = UIImage.with(size: CGSize(width: 100, height: 100)) { context in
  UIColor.lightGrayColor().setFill()
  CGContextFillEllipseInRect(context, CGRect(x: 0, y: 0, width: 100, height: 100))
}

Manipulating Images

let newImage = oldImage.with { context in
  UIColor.lightGrayColor().setFill()
  CGContextFillEllipseInRect(context, CGRect(x: 0, y: 0, width: 100, height: 100))
}

Image Operator

You can easily combine multiple images with + operator.

let backgroundImage = ...
let iconImage = ...
let combinedImage = backgroundImage + iconImage

combine

Installation

  • For iOS 8+ projects: Use CocoaPods with Podfile:

    pod 'SwiftyImage', '~> 1.0'
  • For iOS 7 projects: I recommend you to try CocoaSeeds, which uses source code instead of dynamic frameworks. Sample Seedfile:

    github 'devxoul/SwiftyImage', '1.0.0', :files => 'Sources/SwiftyImage.swift'

Playground

Use CocoaPods command $ pod try SwiftyImage to try Playground!

playground

License

SwiftyImage is under MIT license. See the LICENSE file for more info.