Giter VIP home page Giter VIP logo

cao1109056621 / ijsphotosdk Goto Github PK

View Code? Open in Web Editor NEW

This project forked from wangjinshan/ijsphotosdk

0.0 1.0 0.0 15.27 MB

ios多图选择,高仿微信发朋友圈的功能1, 照片选取预览,有相册UI 预览UI 详情UI 可以创建相册等 2, 预览UI 详情UI 可以通过3DTouch的方式进行查看 3, 可以删除照片 收藏照片 4, 可以通过3DTouch或者点击播放 Video gif livephoto等资源 5, 预览详情支持 单击 双击 缩合等手势处理照片查看 6, 支持国际化配置

License: MIT License

Ruby 0.09% Objective-C 95.73% Objective-C++ 2.49% C 1.09% Shell 0.60%

ijsphotosdk's Introduction

IJSPhotoSDK

ios多图选择,高仿微信发朋友圈的功能

开发者QQ: 1096452045

#简书地址: http://www.jianshu.com/u/874b526fa570

IJSPhotoSDK 集成文档

项目介绍:

主要模仿微信的发朋友圈多图选择,修改图片等功能 主要实现功能如下:

1, 照片选取预览,有相册UI 预览UI 详情UI 可以创建相册等
2, 预览UI 详情UI 可以通过3DTouch的方式进行查看
3, 可以删除照片 收藏照片
4, 可以通过3DTouch或者点击播放 Video gif  livephoto等资源
5,  预览详情支持 单击 双击 缩合等手势处理照片查看
6, 支持国际化配置
7, 新增视频处理包括,裁剪,涂鸦,水印,贴图等等

项目演示

手动拖入的方式

git下载地址: https://github.com/wangjinshan/IJSPhotoSDK

项目目录介绍:

目录:

SDK:  1, IJSPhotoSDK: 主要处理Photokit的api封装,用于相册UI展示和选择
      2, IJSImageEditSDK 主要用于对获取到的图片和视频资源进行裁剪涂鸦等等操作
      3, Resources 存放必要的资源库,如果拆分sdk 这个资源还是需要依赖上
         //以下两个是pod的项目可以pod 语句加入
         // pod search IJSFoundation
         // pod search IJSUExtension
      4,IJSFoundation 主要是公共库的方法,常用方法的整合 
      5,IJSUExtension 是开源 IJSUI的扩展,主要是系统的Category
        

1, 下载sdk并把里面的SDK文件夹直接拖入到项目中去

2, 在项目的点击事件中实现如下代码

1,导入头文件
//必须
#import "IJSImagePickerController.h"
// 可选
#import "IJSMapViewModel.h"
#import <IJSFoundation/IJSFoundation.h>
#import <Photos/Photos.h>
2, 设置回调的数据,以下二者选一个
  2.1,签订协议
    <IJSImagePickerControllerDelegate>
  2.2,获取用户选择的图片等资源可以通过 block 也可以通过代理方法
如下:
// 1 block 方法
- (IBAction)_selectImageActin:(id)sender
{
    __weak typeof(self) weakSelf = self;
    IJSImagePickerController *imageVc = [[IJSImagePickerController alloc] initWithMaxImagesCount:3 delegate:self];
    // 可选写不写
    imageVc.minImagesCount = 1; // 图片最小选择要求,可以不设置
    imageVc.minVideoCut = 4;   //视频最小裁剪尺寸 可选(默认是4秒)
    //可选  可以通过代理的回调去获取数据
    imageVc.didFinishUserPickingImageHandle = ^(NSArray<UIImage *> *photos, NSArray *avPlayers, NSArray *assets, NSArray<NSDictionary *> *infos, BOOL isSelectOriginalPhoto, IJSPExportSourceType sourceType) {
        if (sourceType == IJSPImageType)
        {
            weakSelf.imageArr = [NSMutableArray arrayWithArray:photos];
            [weakSelf.myTableview reloadData];
        }
        else
        {
            NSLog(@"%@",avPlayers);
        }
    };
    /*
     1,贴图资源可以不传,不穿则读取SDK内存的资源,可以找到 JSPhotoSDK.bundle Expression文件 把自己的资源放到里面不需要管文件名字sdk自己会便利
     2, 如果是外部动态添加资源选择下面添加的方式 需要传 IJSMapViewModel 的数组
     */
//    NSString *bundlePath = [[NSBundle mainBundle]pathForResource:@"JSPhotoSDK" ofType:@"bundle"];
//    NSString *filePath =[bundlePath stringByAppendingString:@"/Expression"];
//    [IJSFFilesManager ergodicFilesFromFolderPath:filePath completeHandler:^(NSInteger fileCount, NSInteger fileSzie, NSMutableArray *filePath) {
//        IJSMapViewModel *model =[[IJSMapViewModel alloc]initWithImageDataModel:filePath];
//        [self.mapDataArr addObject:model];
//        imageVc.mapImageArr  = self.mapDataArr;
//    }];
      [self presentViewController:imageVc animated:YES completion:nil];
}
 //  不想在block中做,可以选择代理方法 
#pragma mark - 代理方法
-(void)imagePickerController:(IJSImagePickerController *)picker isSelectOriginalPhoto:(BOOL)isSelectOriginalPhoto didFinishPickingPhotos:(NSArray<UIImage *> *)photos assets:(NSArray *)assets infos:(NSArray<NSDictionary *> *)infos avPlayers:(NSArray *)avPlayers sourceType:(IJSPExportSourceType)sourceType
{
    if (sourceType == IJSPVideoType)
    {
        IJSVideoTestController *testVc =[[IJSVideoTestController alloc] init];
        AVAsset *avaseet = [AVAsset assetWithURL:avPlayers.firstObject];
        testVc.avasset = avaseet;
        [self presentViewController:testVc animated:YES completion:nil];
    }
}
大功告成就是这么简单
额外注意点:
1, 国际化: 
Xcode--PROJECT---info --- Localizations---Chinese(Simplified)
2, 在项目的plist文件中添加两个字段
Privacy - Photo Library Usage Description ----允许应用访问相机权限


cocoapods 集成方式

pod 'IJSPhotoSDK'
项目中的头文件
#import <IJSImagePickerController.h>

最低版本支持是 0.1.0开始 集成步骤和手动拖入的集成一样不再赘述 集成已经完成

项目头文件介绍

IJSPhotoSDK
// 控制器
1, IJSImagePickerController.h 导航栏控制器,通过改变该控制器的一些属性来达到你想要的效果,开放的外部接口
里面的所有属性都是用来控制选取属性的 比如可以设置 maxImagesCount = 9 最大选取个数等
2,  IJSAlbumPickerController 相册列表控制器 
3,  IJSPhotoPickerController 图片选择控制器,默认是4列显示 
4 , IJSPhotoPreviewController  照片预览控制器
5,  IJS3DTouchController   3DTouch控制器
6,  IJSImageManager   照片管理类 所有的照片处理api都在里面可以直接调用
7, IJSPImageEditManager  图片处理管理器 在开发中......
// 资源
1,  IJSAlbumModel 相册模型
2,  IJSAssetModel  照片模型

IJSImageEditSDK
1, IJSImageManagerController 作为统一的接口
2, IJSImageEditController 图片裁剪控制器
3, IJSVideoCutController  视频裁剪
4, IJSVideoEditController 视频编辑
5,IJSVideoManager 视频处理api
6, TOCropViewController  图片尺寸裁剪

后期维护方向

1, 组装SDK: 1.1 图片视频的滤镜处理 1.2 自定义相机 1.3 二维码api增加

2, 拆分SDK

1, 照片预览器 IJSPhotoSDK 2, 图片视频裁剪器 IJSImageEditSDK 3, 视频图片滤镜处理 IJSFilterSDK 4 自定义相机 IJSCameraSDK 5, 二维码 IJSQRCodeSDK

ijsphotosdk's People

Contributors

wangjinshan avatar

Watchers

James Cloos 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.