Wechat-like image picker. Support select photos, videos, gif and livePhoto. Support edit image and crop video. 微信样式的图片选择器,支持预览/相册内拍照及录视频、拖拽/滑动选择,编辑图片/视频,支持多语言国际化等功能;
Swift
4,985
882 commits
updated Aug 28, 2026

English | 简体中文
ZLPhotoBrowser is a Wechat-like image picker. Support select normal photos, videos, gif and livePhoto. Support edit image and crop video.
Detailed usage of Swift and OC, please refer to Wiki.
If you only want to use the image edit feature, please move to ZLImageEditor.
If you have good needs and suggestions in use, or encounter any bugs, please create an issue and I will reply in time.
let picker = ZLPhotoPicker()
picker.selectImageBlock = { [weak self] results, isOriginal in
// your code
}
picker.showPreview(animate: true, sender: self)
let picker = ZLPhotoPicker()
picker.selectImageBlock = { [weak self] results, isOriginal in
// your code
}
picker.showPhotoLibrary(sender: self)
// If you don’t add this key-value pair, multiple languages are not supported, and the album name defaults to English
Localized resources can be mixed YES
Privacy - Photo Library Usage Description
Privacy - Camera Usage Description
Privacy - Microphone Usage Description
● 5.0.0
Add:
Optimized UI for iPad multitasking and custom window sizes.
Updated partial APIs for iOS 26 and iOS 27 compatibility.
Added parameter to control whether camera dismisses when app enters background.
Added `supportLandscape` attribute; `enableWideCameras` now defaults to true.
Added `thumbVCAllowPanToDismiss` property.
Significantly optimized sticker and doodling editing experience.
Updated album filtering logic to display more system albums.
Fix:
Fixed incorrect selection limit prompt when only videos are allowed. #1048
Fixed transparent PNG images rendered with a white background. #1045
Fixed selection state not syncing after deselecting in preview. #1042
● 4.7.4
Add:
Supports editing multiple videos.
Change the license from MIT to Apache-2.0.
● 4.7.3
Fix:
Fixed the issue where the eraser position was displayed incorrectly when editing pictures.
...
🇨🇳 Chinese, 🇺🇸 English, 🇯🇵 Japanese, 🇫🇷 French, 🇩🇪 German, 🇷🇺 Russian, 🇻🇳 Vietnamese, 🇰🇷 Korean, 🇲🇾 Malay, 🇮🇹 Italian, 🇮🇩 Indonesian, 🇪🇸 Spanish, 🇵🇹 Portuguese, 🇹🇷 Turkish, 🇸🇦 Arabic, 🇳🇱 Dutch.
There are four ways to use ZLPhotoBrowser in your project:
To integrate ZLPhotoBrowser into your Xcode project using CocoaPods, specify it to a target in your Podfile:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '10.0'
use_frameworks!
target 'MyApp' do
# your other pod
# ...
pod 'ZLPhotoBrowser'
end
Then, run the following command:
$ pod install
If you cannot find the latest version, you can execute
pod repo updatefirst
To integrate ZLPhotoBrowser into your Xcode project using Carthage, specify it in your Cartfile:
github "longitachi/ZLPhotoBrowser"
Then, run the following command to build the ZLPhotoBrowser framework:
$ carthage update
If you get an error like Building universal frameworks with common architectures is not possible. The device and simulator slices for "ZLPhotoBrowser" both build for: arm64 Rebuild with --use-xcframeworks to create an xcframework bundle instead. Click this link.
or
or 
Selection

Image editor




Wechat-like image picker. Support select photos, videos, gif and livePhoto. Support edit image and crop video. 微信样式的图片选择器,支持预览/相册内拍照及录视频、拖拽/滑动选择,编辑图片/视频,支持多语言国际化等功能;
Swift
4,985
882 commits
updated Aug 28, 2026

English | 简体中文
ZLPhotoBrowser is a Wechat-like image picker. Support select normal photos, videos, gif and livePhoto. Support edit image and crop video.
Detailed usage of Swift and OC, please refer to Wiki.
If you only want to use the image edit feature, please move to ZLImageEditor.
If you have good needs and suggestions in use, or encounter any bugs, please create an issue and I will reply in time.
let picker = ZLPhotoPicker()
picker.selectImageBlock = { [weak self] results, isOriginal in
// your code
}
picker.showPreview(animate: true, sender: self)
let picker = ZLPhotoPicker()
picker.selectImageBlock = { [weak self] results, isOriginal in
// your code
}
picker.showPhotoLibrary(sender: self)
// If you don’t add this key-value pair, multiple languages are not supported, and the album name defaults to English
Localized resources can be mixed YES
Privacy - Photo Library Usage Description
Privacy - Camera Usage Description
Privacy - Microphone Usage Description
● 5.0.0
Add:
Optimized UI for iPad multitasking and custom window sizes.
Updated partial APIs for iOS 26 and iOS 27 compatibility.
Added parameter to control whether camera dismisses when app enters background.
Added `supportLandscape` attribute; `enableWideCameras` now defaults to true.
Added `thumbVCAllowPanToDismiss` property.
Significantly optimized sticker and doodling editing experience.
Updated album filtering logic to display more system albums.
Fix:
Fixed incorrect selection limit prompt when only videos are allowed. #1048
Fixed transparent PNG images rendered with a white background. #1045
Fixed selection state not syncing after deselecting in preview. #1042
● 4.7.4
Add:
Supports editing multiple videos.
Change the license from MIT to Apache-2.0.
● 4.7.3
Fix:
Fixed the issue where the eraser position was displayed incorrectly when editing pictures.
...
🇨🇳 Chinese, 🇺🇸 English, 🇯🇵 Japanese, 🇫🇷 French, 🇩🇪 German, 🇷🇺 Russian, 🇻🇳 Vietnamese, 🇰🇷 Korean, 🇲🇾 Malay, 🇮🇹 Italian, 🇮🇩 Indonesian, 🇪🇸 Spanish, 🇵🇹 Portuguese, 🇹🇷 Turkish, 🇸🇦 Arabic, 🇳🇱 Dutch.
There are four ways to use ZLPhotoBrowser in your project:
To integrate ZLPhotoBrowser into your Xcode project using CocoaPods, specify it to a target in your Podfile:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '10.0'
use_frameworks!
target 'MyApp' do
# your other pod
# ...
pod 'ZLPhotoBrowser'
end
Then, run the following command:
$ pod install
If you cannot find the latest version, you can execute
pod repo updatefirst
To integrate ZLPhotoBrowser into your Xcode project using Carthage, specify it in your Cartfile:
github "longitachi/ZLPhotoBrowser"
Then, run the following command to build the ZLPhotoBrowser framework:
$ carthage update
If you get an error like Building universal frameworks with common architectures is not possible. The device and simulator slices for "ZLPhotoBrowser" both build for: arm64 Rebuild with --use-xcframeworks to create an xcframework bundle instead. Click this link.
or
or 
Selection

Image editor



