/ZLPhotoBrowser

轻量级照片选择框架,支持预览/相册内拍照及录视频、拖拽/滑动选择,编辑裁剪图片/视频,支持多语言国际化等功能; A lightweight and pure Swift implemented library for select photos from album. Support select multiple photos, video, gif, livePhoto. Support edit image and crop video.

Primary LanguageSwiftMIT LicenseMIT

Version Carthage compatible  License Platform Language

image


重要说明

  • 框架自 4.0.0 版本起,升级为纯Swift编写框架,支持最低版本由 iOS8 升级到了 iOS10
  • 添加并增强了一些实用功能(例如图片编辑、预览界面下方小视图显示及拖拽排序等等)
  • 删除一些功能(网络图片及视频的预览,force touch 等等) 具体使用请下载demo查看

Swift 版本兼容 oc app调用; 如需使用之前的oc版本(oc版本不再维护),请点这里

框架整体介绍

功能介绍

你想要的应有尽有,预留给开发者自定义框架参数多达50个(没有的话欢迎提 issue ,功能建议好的话会采纳并着手开发)

  • 支持横竖屏
  • 自选框架样式
  • 预览快速选择(支持拖拽选择,效果参照QQ)
  • 相册内部选择(支持滑动选择)
  • 图片/Gif/LivePhoto/Video 混合选择
  • 自定义最大预览数/选择数/视频最大最小可选时长,控制可否选择原图
  • 自定义每行显示列数
  • 图片编辑(涂鸦/裁剪/马赛克)(图片编辑可编辑多张;涂鸦颜色可自定义,裁剪工具也可根据需要自行选择)
  • 视频编辑(自定义最大裁剪时长)(效果参照微信视频编辑;支持编辑本地视频)
  • 自定义相机(效果参照微信拍照,点击拍照、长按拍摄;上滑调整焦距;可设置最大/最小录制时间及视频分辨率;可设置闪光灯模式及视频导出格式;可根据自己需要控制是否使用自定义相机)
  • 多语言国际化支持(中文简/繁,英文,日文,开发者可选根据系统或自己指定,多语言文案可自定义)
  • 已选择照片index
  • 已选/不可选 状态下mask阴影遮罩
  • 大图界面下方显示已选择照片,可拖拽排序(可根据自己需要控制是否显示)
  • 大图界面下拉返回
  • 相机内部拍照cell实时显示相机俘获画面
  • 可自定义框架字体
  • 框架各个部位颜色均可自定义(传入dynamic color即可支持 light/dark mode)
  • 框架内图片资源可自定义

更多功能请查看 ZLPhotoConfiguration 中的参数定义

如果你在使用中有好的需求及建议,或者遇到什么bug,欢迎随时issue,我会及时的回复

框架支持

  • iOS 10.0
  • Swift 5.x
  • Xcode 11.x

使用示例

  • 快速选择
let ac = ZLPhotoPreviewSheet()
ac.selectImageBlock = { [weak self] (images, assets, isOriginal) in
    // your code
}
ac.showPreview(animate: true, sender: self)
  • 直接进入相册选择
let ac = ZLPhotoPreviewSheet()
ac.selectImageBlock = { [weak self] (images, assets, isOriginal) in
    // your code
}
ac.showPhotoLibrary(sender: self)
  • 调用自定义相机
let camera = ZLCustomCamera()
camera.takeDoneBlock = { [weak self] (image, videoUrl) in
    // your code
}
self.showDetailViewController(camera, sender: nil)
  • 调用编辑图片
let editVC = ZLEditImageViewController(image: image, tools: [.draw, .clip, .mosaic])
editVC.editFinishBlock = { [weak self] (image) in
    // your code
}
editVC.modalPresentationStyle = .fullScreen
self.showDetailViewController(editVC, sender: nil)
  • 调用编辑视频
// 编辑本地视频
let fileUrl = URL(fileURLWithPath: "filePath")
let avAsset = AVAsset(url: fileUrl)
let editVC = ZLEditVideoViewController(avAsset: avAsset, animateDismiss: true)
editVC.editFinishBlock = { (url) in
    // your code
}
editVC.modalPresentationStyle = .fullScreen
self.showDetailViewController(editVC, sender: nil)
  • 自定义图片资源
// 与图片名字保持一致即可
ZLPhotoConfiguration.default().customImageNames = ["zl_btn_selected"]
  • 自定义文案
// swift
ZLPhotoConfiguration.default().customLanguageKeyValue = [.previewCamera: "拍照"]

// oc
ZLPhotoConfiguration.default().customLanguageKeyValue_objc = ["previewCamera": "拍照"]
  • 支持light/dark mode颜色定义示例
if #available(iOS 13.0, *) {
    ZLPhotoConfiguration.default().themeColorDeploy.thumbnailBgColor = UIColor.init(dynamicProvider: { (trait) -> UIColor in
        if trait.userInterfaceStyle == .dark {
            return .black
        } else {
            return .white
        }
    })
}
  • 需要注意的地方,你需要在你app的 Info.plist 中添加如下键值对
//如果不添加该键值对,则不支持多语言,相册名称默认为英文
Localized resources can be mixed YES
//或者右键plist文件Open As->Source Code 添加
CFBundleAllowMixedLocalizations

//相册使用权限描述
Privacy - Photo Library Usage Description
//相机使用权限描述
Privacy - Camera Usage Description
//麦克风使用权限描述
Privacy - Microphone Usage Description

更新日志

更多更新日志

● 4.0.4: 优化图片编辑体验,记录之前编辑状态; 添加是否允许拍照参数; 优化降序照片获取顺序; fix #510, fix #513; 修复其他已知bug;
● 4.0.2: 新增框架样式设置(新增一种仿微信的样式); 编辑图片添加马赛克功能; 添加下拉返回动画; 自定义相机支持最短录制时间设置; 优化gif照片的回调;
● 4.0.1: 优化视频编辑功能; 增加自定义列数功能; 修复一些bug;
● 4.0.0: 框架升级为纯`Swift`编写,最低支持右`iOS8`升级到`iOS10`;
...

使用方法

  • Manually

    • 1.直接把Sources文件夹拖入到您的工程中
  • Cocoapods

    • 1.在Podfile 中添加 pod 'ZLPhotoBrowser'
    • 2.执行 pod install

    如找不到最新版本,可首先执行pod repo update

  • Carthage

    • 1.在Cartfile 中添加 github "longitachi/ZLPhotoBrowser" ~> 4.0.0
    • 2.执行 carthage update ZLPhotoBrowser --platform iOS
  • Swift Package Manager (该方式集成暂时有问题,图片及多语言资源无法读取,请暂时先用其他方式)

      1. 选择 File > Swift Packages > Add Package Dependency,输入 https://github.com/longitachi/ZLPhotoBrowser.git
      1. 输入对应版本号(SPM 最低版本为 4.0.1
      1. 等Xcode下载完成后确定即可

效果图

  • 选择 image image image

  • 编辑图片

image

  • 编辑视频

image

  • 多语言

image

  • 自定义相机介绍

image