FlexibleImage 是希望任何人都能轻松开发具有相机滤镜和主题等功能的 App。当你以“方法链”风格编写代码时,效果会按照适当的顺序应用。
如果您想先查看实际代码,请先查看 示例 部分。
💡 用法
代码
import UIKit
import FlexibleImage
/// Generate Example
let image1 = UIImage
.circle(
color: UIColor.blue,
size: CGSize(width: 100, height: 100)
)!
.adjust()
.offset(CGPoint(x: 25, y: 0))
.margin(UIEdgeInsets(top: 5, left: 5, bottom: 5, right: 5))
.padding(UIEdgeInsets(top: 15, left: 15, bottom: 15, right: 15))
.normal(color: UIColor.white)
.border(color: UIColor.red, lineWidth: 5, radius: 50)
.image()!
.adjust()
.background(color: UIColor.darkGray)
.image()
/// Effect Example
let image2 = UIImage(named: "macaron.jpg")!
.adjust()
.outputSize(CGSize(width: 250, height: 250))
.exclusion(color: UIColor(red: 0, green: 0, blue: 0.352941176, alpha: 1.0))
.linearDodge(color: UIColor(red: 0.125490196, green: 0.058823529, blue: 0.192156863, alpha: 1.0))
.hardMix(color: UIColor(red: 0.3, green: 0.3, blue: 0.3, alpha: 1.0))
.image()
/// Mix Example
let image3 = image2!.adjust()
.append(
image1!.adjust()
.outputSize(CGSize(width: 250, height: 250))
.alpha(0.5)
)
.image()
/// Clipping Example
let image4 = image3!.adjust()
.corner(CornerType(25))
.image()
/// Pipeline
let pipeline = ImagePipeline()
.exclusion(color: UIColor(red: 0, green: 0, blue: 0.352941176, alpha: 1.0))
.linearDodge(color: UIColor(red: 0.125490196, green: 0.058823529, blue: 0.192156863, alpha: 1.0))
let image5 = pipeline.image(image2)
let image6 = pipeline.image(image1)
演练场
使用 CocoaPods 命令 $ pod try FlexibleImage
尝试演练场!
🏗 安装
CocoaPods (适用于 iOS 8+ 项目)
KWDrawerController 可在 CocoaPods (https://github.com/cocoapods/cocoapods) 上找到。将以下内容添加到您的 Podfile 中
/// Swift 3
pod 'FlexibleImage', '~> 1.7'
/// Swift 4
pod 'FlexibleImage', '~> 1.9'
Carthage (适用于iOS 8及以上版本的项目)
github "kawoou/FlexibleImage" ~> 1.9
手动
您可以将 Source
文件夹简单地拖放到您现有的项目中。
📕 支持的功能
通用
类型 | 参数 | 注释 |
---|---|---|
background() | 颜色 | 背景颜色。 |
opacity() | 浮点数 | 更改图像的透明度。 |
alphaProcess() | 布尔值 | 是否在图像处理过程中包括alpha值。 |
(已弃用) |
||
offset() | CGPoint | 要绘制的图像位置。 |
rotate() | radius: CGFloat fixedSize: CGSize [可选] |
旋转图像。 |
size() | CGSize | 要绘制的图像的大小。 |
outputSize() | CGSize | 输出图像的大小。 |
scaling() | CGSize | 缩放图像(比例) |
margin() | EdgeInsets | 边距大小 |
padding() | EdgeInsets | 填充大小 |
corner() | CornerType | 剪裁角落的圆角半径。 |
border() | color: Color lineWidth: CGFloat radius: CGFloat |
绘制边界。 |
image() | 运行管道以创建输出图像。 |
过滤器
类型 | 参数 | 注释 |
---|---|---|
greyscale() | threshold: Float [可选] | |
monochrome() | threshold: Float [可选] | |
invert() | ||
sepia() | ||
vibrance() | vibrance: Float [可选] | |
solarize() | threshold: Float [可选] | |
posterize() | colorLevel: Float [可选] | |
blur() | blurRadius: Float [可选] | 不支持watchOS。 |
brightness() | brightness: Float [可选] | |
chromaKey() | color: FIColor threshold: Float [可选] smoothing: Float [可选] |
|
swizzling() | ||
contrast() | threshold: Float [可选] | |
gamma() | gamma: Float [可选] |
混合
类型 | 参数 |
---|---|
normal() | 颜色 |
multiply() | 颜色 |
lighten() | 颜色 |
darken() | 颜色 |
average() | 颜色 |
add() | 颜色 |
subtract() | 颜色 |
difference() | 颜色 |
negative() | 颜色 |
screen() | 颜色 |
exclusion() | 颜色 |
overlay() | 颜色 |
softLight() | 颜色 |
hardLight() | 颜色 |
colorDodge() | 颜色 |
colorBurn() | 颜色 |
linearDodge() | 颜色 |
linearBurn() | 颜色 |
linearLight() | 颜色 |
vividLight() | 颜色 |
pinLight() | 颜色 |
hardMix() | 颜色 |
reflect() | 颜色 |
glow() | 颜色 |
phoenix() | 颜色 |
hue() | 颜色 |
saturation() | 颜色 |
color() | 颜色 |
luminosity() | 颜色 |
后处理
类型 | 参数 | 注释 |
---|---|---|
algorithm() | AlgorithmType | 通过在像素级别直接写入公式创建图像。 |
custom() | ContextType | 使用Core Graphics直接添加处理。 |
生成
类型 | 注释 |
---|---|
rect() | 创建矩形图像。 |
circle() | 创建圆形图像。 |
append() | 将图像组合成一个单一的图像。 |
ImagePipeline
类)
管道(类型 | 参数 | 返回 | 注释 |
---|---|---|---|
image() | FIImage | FIImage? | 创建输出图像。 |
image() | CGImage | CGImage? | 创建输出图像。 |
image() | CVImageBuffer | CGImage? | 创建输出图像。 |
🎁 示例
🏷 变更日志
- 1.0
- 首次发布。
- 1.1
- 添加到裁剪角半径。
- 1.2
- 支持 tvOS 和 macOS。
- 1.3
- 支持 watchOS。
- 添加了灰度、深棕、活力、日晒、海报化过滤器。
- 更新重置方法。
- 1.4
- 添加模糊过滤器。
- 优化构建时间。
- 设置 TravisCI。
- 支持 carthage。
- 1.5
- 根据情况支持 Metal。
- 添加亮度、色度、交换、对比度、伽玛过滤器。
- 1.6(热修复!)
- 修复 Cocoapods 中 Metal 库路径问题。
- 1.7
- 流处理的管道实现。
- 修复由于图像方向导致的渲染错误(感谢 Kwonyoon Kang)
- 1.8
- 支持 Swift 4 和 Xcode 9
- 1.9
- 支持 Swift 4.1 和 Xcode 9.3
- 1.10
- 支持 Swift 4.2 和 Xcode 10
💻 要求
- iOS 8.0+
- tvOS 9.0+
- macOS 10.10+
- watchOS 2.0+
- Swift 3.0+
🔑 许可证
FlexibleImage 使用 MIT 许可。有关更多信息,请参阅 LICENSE 文件。