FlexibleImage 1.10

FlexibleImage 1.10

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最新版本2018年11月
SPM支持 SPM

Kawoou 维护。



FlexibleImage

Swift Metal Platform License
Build Status Version Carthage compatible

FlexibleImage 是希望任何人都能轻松开发具有相机滤镜和主题等功能的 App。当你以“方法链”风格编写代码时,效果会按照适当的顺序应用。

如果您想先查看实际代码,请先查看 示例 部分。


💡用法

代码

Example Image

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值。
blendMode() CGBlendMode (已弃用) 图像的混合模式
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 文件。