LCT-TGCameraViewController 2.2.3

LCT-TGCameraViewController 2.2.3

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布上次发布2016年2月

Eddie Li 维护。




  • Bruno Tortato Furtado 和 Eddie Li

TGCameraViewController

使用 AVFoundation 来自定义相机。漂亮、轻量且易于集成到 iOS 项目中。

构建状态  许可证 MIT      分析

  • 完全自定义的 AVFoundation 相机
  • 自定义视图内部拒绝相机权限
  • 自定义按钮颜色
  • 简单访问相册(相册)的方法
  • 自动、关闭和开启闪光灯
  • 对焦
  • 前置和后置摄像头
  • 网格视图
  • 具有三种滤镜的预览相片视图(快速处理)
  • 类似于 Instagram iOS 应用的视觉效果
  • 支持 iPhone、iPod 和 iPad

此库适用于 iOS 7.0+ 操作系统的设备。



谁在使用它

了解 使用 TGCameraViewController 的用户 并将您的应用程序添加到列表中。



将它们添加到您的项目中

CocoaPods 是将 TGCameraViewController 添加到项目的推荐方式。

  • 在 Podfile 中添加 TGCameraViewController 的 pod 项目
pod 'TGCameraViewController'
  • 运行以下命令来安装 pod(s)
pod install

或者您可以直接下载 最新的代码版本,然后将其拖放到项目中 TGCameraViewController 文件夹内。



使用方法

拍照

#import "TGCameraViewController.h"

@interface TGViewController : UIViewController <TGCameraDelegate>

@property (strong, nonatomic) IBOutlet UIImageView *photoView;

- (IBAction)takePhotoTapped;

@end



@implementation TGViewController

- (IBAction)takePhotoTapped
{
    TGCameraNavigationController *navigationController =
    [TGCameraNavigationController newWithCameraDelegate:self];

    [self presentViewController:navigationController animated:YES completion:nil];
}

#pragma mark - TGCameraDelegate optional

- (void)cameraWillTakePhoto
{
    NSLog(@"%s", __PRETTY_FUNCTION__);
}

- (void)cameraDidSavePhotoAtPath:(NSURL *)assetURL
{
    // When this method is implemented, an image will be saved on the user's device
    NSLog(@"%s album path: %@", __PRETTY_FUNCTION__, assetURL);
}

- (void)cameraDidSavePhotoWithError:(NSError *)error
{
    NSLog(@"%s error: %@", __PRETTY_FUNCTION__, error);
}

#pragma mark - TGCameraDelegate required

- (void)cameraDidCancel
{
    [self dismissViewControllerAnimated:YES completion:nil];
}

- (void)cameraDidTakePhoto:(UIImage *)image
{
    _photoView.image = image;
    [self dismissViewControllerAnimated:YES completion:nil];
}

- (void)cameraDidSelectAlbumPhoto:(UIImage *)image
{
    _photoView.image = image;
    [self dismissViewControllerAnimated:YES completion:nil];
}

@end

选择照片

#import "TGCameraViewController.h"

@interface TGViewController : UIViewController
<UINavigationControllerDelegate, UIImagePickerControllerDelegate>

@property (strong, nonatomic) IBOutlet UIImageView *photoView;

- (IBAction)chooseExistingPhotoTapped;

@end



@implementation TGViewController

- (IBAction)chooseExistingPhotoTapped
{
    UIImagePickerController *pickerController =
    [TGAlbum imagePickerControllerWithDelegate:self];

    [self presentViewController:pickerController animated:YES completion:nil];
}

#pragma mark - UIImagePickerControllerDelegate

- (void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    _photoView.image = [TGAlbum imageWithMediaInfo:info];
    [self dismissViewControllerAnimated:YES completion:nil];
}

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
    [self dismissViewControllerAnimated:YES completion:nil];
}

@end

更改颜色

@implementation TGViewController

- (void)viewDidLoad
{
    [super viewDidLoad];

    UIColor *tintColor = [UIColor greenColor];
    [TGCameraColor setTintColor:tintColor];
}

@end

选项

选项 类型 默认 描述
隐藏相机选项切换按钮 NSNumber (YES/NO) NO 显示或隐藏切换前后摄像头的按钮
隐藏图片库切换按钮 NSNumber (YES/NO) NO 显示或隐藏允许用户从相册选择照片的按钮
隐藏滤镜按钮 NSNumber (YES/NO) NO 显示或隐藏允许用户过滤照片的按钮
保存照片到相册 NSNumber (YES/NO) NO 是否将照片保存到相机胶卷
#import "TGCamera.h"

@implementation UIViewController

- (void)viewDidLoad
{
    //...
    [TGCamera setOption:kTGCameraOptionHiddenToggleButton value:[NSNumber numberWithBool:YES]];
    [TGCamera setOption:kTGCameraOptionHiddenAlbumButton value:[NSNumber numberWithBool:YES]];
    [TGCamera setOption:kTGCameraOptionHiddenFilterButton value:[NSNumber numberWithBool:YES]];
    [TGCamera setOption:kTGCameraOptionSaveImageToAlbum value:[NSNumber numberWithBool:YES]];
    //...
}

- (IBAction)buttonTapped
{
    //...
    BOOL hiddenToggleButton = [[TGCamera getOption:kTGCameraOptionHiddenToggleButton] boolValue];
    BOOL hiddenAlbumButton = [[TGCamera getOption:kTGCameraOptionHiddenAlbumButton] boolValue];
    BOOL hiddenFilterButton = [[TGCamera getOption:kTGCameraOptionHiddenFilterButton] boolValue];
    BOOL saveToDevice = [[TGCamera getOption:kTGCameraOptionSaveImageToAlbum] boolValue];
    //...    
}

@end


需求

TGCameraViewController适用于iOS 7.0+版本,且与ARC项目兼容。它依赖于以下Apple框架,这些框架通常已包含在大多数Xcode模板中

  • AssetsLibrary.framework
  • AVFoundation.framework
  • CoreImage.framework
  • Foundation.framework
  • MobileCoreServices.framework
  • UIKit.framework

为了构建TGCameraViewController,您需要LLVM 3.0或更高版本。



待办事项

  • 支持横屏模式
  • zoom
  • 将图像大小作为全局参数
  • 快速动画
  • 创建自定义选择控制器
  • 缩放功能不适用于相机胶卷中的图片


许可证

本代码根据MIT许可的条款和条件进行分发。



变更日志

每个TGCameraViewController发布的简要总结可以在发布中找到。