# ZLImageEditor is a Swift image editing framework extracted from ZLPhotoBrowser

> ZLImageEditor is an MIT licensed Swift framework for iOS that provides drawing, cropping, mosaic, stickers, filters and adjustments, with four installation paths. It suits app developers who need an in-app editor, and version 4 raised its floor to iOS 15.

**longitachi/ZLImageEditor** — A powerful image editor framework. Supports graffiti, cropping, mosaic, text stickers, image stickers, filters.

- Repository: https://github.com/longitachi/ZLImageEditor
- Stars: 633 · Forks: 127
- Language: Swift
- License: MIT
- Published: 2026-10-21 · Updated: 2026-10-21 · Language: en
- Canonical page: https://hysenlabs.com/projects/longitachi-zlimageeditor

## Seven tools behind one configuration object

The editing surface is built from a configuration object rather than a menu of view controllers you assemble yourself. The documented usage sets a default configuration, names the tools to expose, and then names the adjustment parameters separately.

```swift
ZLImageEditorConfiguration.default()
    .editImageTools([.draw, .clip, .imageSticker, .textSticker, .mosaic, .filter, .adjust])
    .adjustTools([.brightness, .contrast, .saturation])

ZLEditImageViewController.showEditImageVC(parentVC: self, image: image, editModel: editModel) { [weak self] (resImage, editModel) in
    // your code
}
```

The distinction between editImageTools and adjustTools matters. The first selects which editing screens the user can reach, the second selects which sliders appear inside the adjust screen. A configuration that lists .adjust but leaves adjustTools empty would give you an adjustment screen with nothing in it. The completion handler returns both the resulting image and the edit model, so the state you configured and the state the user left behind both come back to you.

## Version 4 moved the floor to iOS 15 and reshaped the iPad experience

The requirements table is the first thing to check, because it splits on version. From 4.0.0 the framework needs iOS 15.0 and Xcode 27, while versions below 4.0.0 target iOS 10.0 with Xcode 26. That is a large jump in the minimum deployment target for an existing app, and it comes with a release that was published on 2026-10-19, the same day as the last push. The change log for 4.0.0 lists the UI adapted for iPhone Duo, updated APIs to iOS 15.0, optimized iPad UI with multi-scene and custom app-window sizes, and demo support for iPad multi-window. In other words the major version is mostly a platform migration, not a new feature set. If you need to stay on older iOS targets, the framework still supports it, but you are pinning to an older major version and living in a separate API branch.

## Sticker and drawing behaviour has been reworked twice since May 2026

The 3.0.0 release from 2026-05-22 concentrated on interaction quality, which is a useful signal about where the effort goes. It improved sticker editing interactions with coordinated gesture handling, added dedicated text sticker content rendering, and improved doodle smoothing and eraser hit detection for smoother drawing and more reliable stroke removal. The 2.0.6 release fixed a specific bug where the eraser position was displayed incorrectly while editing pictures. These are the kind of changes that only appear once real users put fingers on a canvas. The Features list confirms what is on offer and the extension points for each: draw supports a custom line color, crop supports custom crop ratios, image sticker supports a custom image sticker container view, text sticker supports a custom text color, and filter supports custom filters.

## Four installation paths, and the Podfile example still targets iOS 10

The project is distributed four ways, which is generous by iOS library standards: CocoaPods, Carthage, Swift Package Manager and manual install by building frameworks or embedding the Xcode project. For CocoaPods the README gives a Podfile stanza, and note that the platform line in that example reads 10.0.

```
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '10.0'
use_frameworks!

target 'MyApp' do
  # your other pod
  # ...
  pod 'ZLImageEditor'
end
```

Then the install step is a single command.

```
$ pod install
```

If the pod cannot be found, the documentation suggests running pod repo update first. That example predates the 4.0.0 iOS 15 requirement, so treat the platform line as a template to edit rather than a value to copy blindly.

## Carthage and SwiftPM cover the cases CocoaPods does not suit

Carthage integration is one line in a Cartfile.

```
github "longitachi/ZLImageEditor"
```

And the framework is built with one command.

```
$ carthage update ZLImageEditor
```

Swift Package Manager is handled inside Xcode rather than from the command line. The instructions are to select File, then Swift Packages, then Add Package Dependency, and enter the repository URL in the Choose Package Repository dialog. On the following page the version resolving rule is set to Up to Next Major with 4.0.0 as the earliest version, and after Xcode checks out the source and resolves the version you can add the ZLImageEditor library to your app target. Up To Next Major is worth thinking about: it lets the package manager pick later minor and patch releases within the 4.x line, so your build will move as the framework does unless you pin it yourself.

## The framework came out of ZLPhotoBrowser and keeps its own workspace and podspec

ZLImageEditor is extracted from ZLPhotoBrowser, which is the same author's larger photo browser library, and the project README points to the CHANGELOG for the full log of changes. The repository layout shows a modern Swift package arrangement with a Package.swift file, a Sources directory, Tests, an Example project, a SwiftUIExample folder, a .swiftpm directory and ZLImageEditor.podspec, alongside the older ZLImageEditor.xcodeproj and ZLImageEditor.xcworkspace directories. The presence of both a Swift package manifest and an Xcode workspace is typical of a library that has to serve CocoaPods, Carthage and manual integration at the same time. It does mean the framework is distributed as several artefacts rather than one, so a dependency audit has to look at the podspec and the package manifest separately.

## Seventeen locales, a SwiftUI example, and an MIT licence

Localisation is broad for a UI framework of this size. The Languages list covers Simplified and Traditional Chinese, English, Japanese, French, German, Ukrainian, Russian, Vietnamese, Korean, Malay, Italian, Indonesian, Spanish, Portuguese, Turkish, Arabic and Dutch. The licence is MIT, which makes embedding the editor in a commercial app straightforward, and the repository has a dedicated LICENSE file. Version numbering follows a clean major-minor-patch scheme with 4.0.0 published on 2026-10-19, 3.0.0 in May 2026 and 2.0.6 in October 2025. For a component that ends up inside someone else's app, that release history and the maintained SwiftUIExample are the two signals that matter most when you decide which version to pin.

## Conclusion

Adopt ZLImageEditor when you are building an iOS app that needs an image editing screen and you want draw, crop, mosaic, sticker, filter and adjustment tools without designing that stack yourself, especially since the project ships CocoaPods, Carthage, SwiftPM and manual install routes and seventeen locales. Skip it if you need to support iOS versions below 15 on the 4.x line, since version 4 adapted the UI and APIs to iOS 15.0, or if your editing needs go beyond the seven tool categories, as the framework exposes them as a fixed list. Verify first which version you are taking, because the requirements table changes between 4.0.0 and earlier, then confirm the configuration approach works for your flow, since the edit model is a value type you build before presenting the view controller.

## FAQ

### How do I install ZLImageEditor in an iOS project?

There are four supported routes: CocoaPods, Carthage, Swift Package Manager and manual install. With CocoaPods you add pod 'ZLImageEditor' to the target and run pod install.

### Which iOS versions does ZLImageEditor support?

Version 4.0.0 and later require iOS 15.0 with Xcode 27, while versions below 4.0.0 target iOS 10.0 with Xcode 26.

### What editing tools does ZLImageEditor provide?

Draw with a custom line color, crop with custom crop ratios, image stickers with a custom container view, text stickers with a custom text color, mosaic, filters with custom filters, and adjustment of brightness, contrast and saturation.

### How do I show the editor and get the result back?

Build an edit model with ZLImageEditorConfiguration, listing the tools in editImageTools and the parameters in adjustTools, then call ZLEditImageViewController.showEditImageVC with a completion handler that receives the edited image and the edit model.

## Sources

- [Issues](https://github.com/longitachi/ZLImageEditor/issues)
- [License: MIT](https://github.com/longitachi/ZLImageEditor/blob/master/LICENSE)
- [longitachi/ZLImageEditor on GitHub](https://github.com/longitachi/ZLImageEditor)
- [README](https://github.com/longitachi/ZLImageEditor/blob/master/README.md)
- [Releases](https://github.com/longitachi/ZLImageEditor/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/longitachi-zlimageeditor
