Giter VIP home page Giter VIP logo

khoi-backyard / zlphotobrowser Goto Github PK

View Code? Open in Web Editor NEW

This project forked from longitachi/zlphotobrowser

0.0 1.0 0.0 96.86 MB

轻量级照片选择框架,支持预览/相册内拍照及录视频、拖拽/滑动选择,编辑裁剪图片/视频,支持多语言国际化等功能; 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.

License: MIT License

Objective-C 0.43% Ruby 0.20% Swift 99.36% C 0.02%

zlphotobrowser's Introduction

Version Carthage compatible  License Platform Language

image


重要说明

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

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

框架整体介绍

SwiftOC详细使用方法请查看Wiki

功能介绍

你想要的应有尽有,部分功能如下,更多功能请查看 ZLPhotoConfiguration 中的参数定义(没有的话欢迎提 issue ,功能建议好的话会采纳并着手开发)

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

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

框架支持

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

使用示例

  • 快速选择
let ps = ZLPhotoPreviewSheet()
ps.selectImageBlock = { [weak self] (images, assets, isOriginal) in
    // your code
}
ps.showPreview(animate: true, sender: self)
  • 直接进入相册选择
let ps = ZLPhotoPreviewSheet()
ps.selectImageBlock = { [weak self] (images, assets, isOriginal) in
    // your code
}
ps.showPhotoLibrary(sender: self)
  • 需要注意的地方,你需要在你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.8: 编辑图片添加滤镜功能;
● 4.0.7: 支持设置图片裁剪比例; 自定义相机支持录制时切换摄像头; 新增已选照片边框功能; 新增是否允许预览大图功能;其他细节优化及已知bug修复;
● 4.0.5: 适配iOS14 limited权限; 优化图片预览显示; 优化大长/宽图编辑; 
● 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.5
      1. 等Xcode下载完成后确定即可

效果图

  • 选择 image image image

  • 编辑图片

image

  • 编辑视频

image

  • 多语言

image

  • 自定义相机介绍

image

zlphotobrowser's People

Contributors

changsanjiang avatar goodheart avatar khoi avatar kinarobin avatar kkkgit avatar longitachi avatar ly541349042 avatar maligh avatar mouse-lin avatar zhugexiaobo avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.