HuaRuoDie / ZLPhotoBrowser

方便易用的相册多选框架,支持预览/相册内拍照及录视频、拖拽/滑动选择,3DTouch预览,编辑裁剪图片(滤镜)/视频,导出视频(可添加水印,粒子特效,视频转码);支持多语言国际化(中文简/繁,英语,日语,可手动切换);在线下载iCloud端图片;支持预览网络及本地图片/视频

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

image

Version License Platform Language


框架整体介绍

功能介绍

  • 支持横竖屏 (已适配iPhone X)
  • 预览快速选择、可设置预览最大数 (支持拖拽选择)
  • 直接进入相册选择 (支持滑动多选)
  • 编辑图片 (支持多种滤镜,可自定义裁剪比例)
  • 编辑视频
  • 查看、选择gif、LivePhoto(iOS9.0)、video
  • 3D Touch预览image、gif、LivePhoto、video
  • 混合选择image、gif、livePhoto、video
  • 在线下载iCloud照片
  • 控制选择video最大时长
  • 多语言国际化 (中文简/繁、英文、日文,可设置跟随系统和自行切换,可自定义多语言提示)
  • 相册内拍照按钮实时显示镜头捕捉画面
  • 已选择图片遮罩层标记
  • 预览已选择照片
  • 预览网络及本地 图片/视频 (图片支持长按保存至相册)
  • 相册内图片自定义圆角弧度
  • 自定义升序降序排列
  • 支持点击拍照及长按录制视频 (仿微信)
  • 开发者可自定义资源图片
  • 支持导出视频 (可指定导出视频尺寸、添加图片水印、粒子特效 ps:文字水印暂不支持)

Feature

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

更新日志

更多更新日志

● 2.7.3: Fix #269, #274;
● 2.7.1: 支持自定义导航返回按钮图片;
● 2.7.0: 图片资源加上前缀,解决9.0无法选择图片问题; 
● 2.6.9: 重构编辑图片功能,添加滤镜;
● 2.6.7: 优化视频编辑界面,极大减少进入时的等待时间;
● 2.6.6: Fix #216; 新增隐藏裁剪图片界面比例工具条功能;
● 2.6.5: 新增隐藏"已隐藏"照片及相册的功能; Fix #221, 优化预览网络图片/视频时根据url后缀判断的类型方式;
● 2.6.4: Fix #181, #184, #185;
● 2.6.3: 新增自定义多语言文本功能; 新增预览网络视频功能;
● 2.6.2: 新增是否保存已编辑图片的参数; 优化编辑图片旋转体验; 新增取消选择回调;
● 2.6.1: 新增导出视频添加粒子特效功能(如下雪特效); 新增编辑图片时旋转图片功能;
● 2.6.0: ①:新增调用系统相机录制视频功能;
         ②:支持导出指定尺寸的视频,支持导出视频添加图片水印;
         ③:优化部分UI显示;
● 2.5.5: 视频导出方法中添加压缩设置参数; 支持app名字国际化的获取; 删除视频导出3gp格式; fix #157;
● 2.5.4: 新增视频导出功能; 新增获取图片路径api; 优化自定义相机,当相机消失后恢复其他音乐软件的播放;
● 2.5.3: 拍摄视频及编辑视频支持多种格式(mov, mp4, 3gp); 新增相册名字等多语言,以完善手动设置语言时相册名字跟随系统的问题; 简化相册调用,configuration 由必传参数修改为非必传参数;
● 2.5.2: 提取相册配置参数独立为'ZLPhotoConfiguration'对象; 新增状态栏样式api; 优化部分代码;
● 2.5.1: ①:新增自定义相机(仿微信),开发者可选使用自定义相机或系统相机;
         ②:支持录制视频,可设置最大录制时长及清晰度;
● 2.5.0.2: 新增自行切换框架语言api; 编辑图片界面当只有一个比例且为custom或1:1状态下隐藏比例切换工具条;
● 2.5.0.1: 提供逐个解析图片api,方便 shouldAnialysisAsset 为 NO 时的使用; 提供控制是否可以选择原图参数;
● 2.5.0: 新增选择后是否自动解析图片参数 shouldAnialysisAsset (针对需要选择大量图片的功能,框架一次解析大量图片时,会导致内存瞬间大幅增高,建议此时置该参数为NO,然后拿到asset后自行逐个解析); 修改图片压缩方式,确保原图尺寸不变

框架支持

最低支持:iOS 8.0

IDE:Xcode 9.0 及以上版本 (由于适配iPhone X使用iOS11api,所以请使用Xcode 9.0及以上版本)

使用方法

第一步:

  • Manually
    • 1.直接把PhotoBrowser文件夹拖入到您的工程中
    • 2.导入 Photos.framework及PhotosUI.framework
    • 3.项目依赖 SDWebImageGPUImage 所以需要导入这两个框架
    • 4.导入 "ZLPhotoActionSheet.h"
  • Cocoapods
    • 1.在Podfile 中添加 pod 'ZLPhotoBrowser'
    • 2.执行 pod setup
    • 3.执行 pod installpod update
    • 4.导入 <ZLPhotoActionSheet.h>

第二步:

  • 在项目plist配置文件中添加如下键值对
//如果不添加该键值对,则不支持多语言,相册名称默认为英文
Localized resources can be mixed YES
//或者右键plist文件Open As->Source Code 添加
<key>CFBundleAllowMixedLocalizations</key>
<true/>

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

代码中调用

#import "ZLPhotoActionSheet.h"
    
ZLPhotoActionSheet *ac = [[ZLPhotoActionSheet alloc] init];

//相册参数配置,configuration有默认值,可直接使用并对其属性进行修改
ac.configuration.maxSelectCount = 5;
ac.configuration.maxPreviewCount = 10;

//如调用的方法无sender参数,则该参数必传
ac.sender = self;

//选择回调
[ac setSelectImageBlock:^(NSArray<UIImage *> * _Nonnull images, NSArray<PHAsset *> * _Nonnull assets, BOOL isOriginal) {
    //your codes
}];

//调用相册
[ac showPreviewAnimated:YES];

//预览网络图片
[ac previewPhotos:arrNetImages index:0 hideToolBar:YES complete:^(NSArray * _Nonnull photos) {
    //your codes
}];

English

可能有翻译不正确的地方,还请英语大佬校准校准

Functions

  • Multiple orientations support: Portrait, Landscape
  • Adaption with iPhone X
  • Supports quick selection in preview list, can set maximum preview numbers (drag selection supported)
  • Select from album directly (slide to select multiple images is supported)
  • Edit images (image filter, cut-out proportion can be customized)
  • Edit videos
  • View and select gif, LivePhoto(iOS 9.0+), video
  • 3D Touch preview image, gif, LivePhoto, video
  • Select image, gif, LivePhoto, video assembly
  • Download photos from iCloud online
  • Control to select video max play time
  • Internationalization (current supported: Simple Chinese, English, Japanese, Traditional Chinese. Can follow system or changed in code. Can specify the other language)
  • Including camera cell in album, rendering captured image in real time
  • Able to have a mask on selected items
  • Preview selected items
  • Preview images/videos saved locally or online (long press to save image to album is supported)
  • Customize radius of images in album
  • Able to sort ascending items or descending items
  • Click to take photos or long press to record videos is supported (just like WeChat)
  • Can customize resource images
  • Able to Export video (Can specify video size or add an image watermark or particle effects. PS: text watermark is not supported currently)

Requirements

iOS 8.0+ Xcode 9.0+

Usage

Step1

  • Manually

    1. Drag PhotoBrowser/ folder into your project
    1. Import Photos.framework and PhotosUI.framework
    1. This repo relays on SDWebImage and GPUImage, so you also need it
    1. Import "ZLPhotoActionSheet.h" at where you wanna use it
  • Cocoapods

    1. add pod 'ZLPhotoBrowser'
    1. pod setup
    1. pod install or pod update
    1. import <ZLPhotoActionSheet.h>

Step2

  • add description in info.plist
Localized resources can be mixed YES
Privacy - Photo Library Usage Description
Privacy - Camera Usage Description
Privacy - Microphone Usage Description

问答

  • 关于 @available(9.0, *) 报错 (#90)

该错误会出现在XCode 9.0以下版本,把该代码替换为 [UIDevice currentDevice].systemVersion.floatValue >= 9.0 即可

  • pod 2.4.3 以下版本更新到 pod 2.4.3 以上版本报如下错误 Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<ZLThumbnailViewController 0x15bed0d10> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key verLeftSpace.'

由于 pod 2.4.3 版本删除对应xib,所以请执行 command+shift+k clean项目,重启Xcode即可

效果图

  • 多语言国际化效果图 image image image image

  • iPhone X

image

image

  • 3DTouch预览效果图

image

  • 导出视频添加粒子特效(雪花效果)

image

  • 编辑视频预览图

image

  • 编辑图片预览图

image

  • 滤镜

image

  • 自定义相机效果图及介绍

image image

  • 滑动多选预览图

image

  • 拖拽选择预览图

image

  • 混合选择预览图

image

  • 横屏预览图

image

  • 预览网络图片

image

  • 遮罩层

image

  • 预览快速多选效果图

image image

  • 直接进入相册选择相片效果图

image

  • 预览大图及缩放效果图

image image image

  • 拍照

image

  • 相册内混合选择效果图

image

  • 预览已选择照片效果图

image image

  • 原图功能效果图

image

About

方便易用的相册多选框架,支持预览/相册内拍照及录视频、拖拽/滑动选择,3DTouch预览,编辑裁剪图片(滤镜)/视频,导出视频(可添加水印,粒子特效,视频转码);支持多语言国际化(中文简/繁,英语,日语,可手动切换);在线下载iCloud端图片;支持预览网络及本地图片/视频

License:MIT License


Languages

Language:Objective-C 99.8%Language:Ruby 0.2%