SimpleCam 0.1.5

SimpleCam 0.1.5

测试已测试
语言语言 Obj-CObjective C
许可 自定义
发布最新版本2014年12月

Logan Wright维护。




SimpleCam 0.1.5

用于原生 UIImagePicker 摄像头的内存高效替换/替代

为什么我需要它?

SimpleCam 的创建源于在提供小巧内存占用的情况下获取高质量照片的需求。Apple 的 UIImagePicker 是一款出色的应用,但由于它具有许多功能和选项,所以它使用了很多内存。这可能会导致崩溃、延迟,并导致整体体验不佳,而您只是想给用户提供快速拍照的机会。

如果您使用 UIImagePicker 捕获照片,或在 AVFoundation 中以可能的最高捕获分辨率为捕获,它将返回巨大的图像文件,大小超过数千像素。SimpleCam 通过将照片调整到手机屏幕的 2 倍大小来避免这种情况,同时仍然使用可能的最高捕获分辨率。这使得照片的文件大小显著减小,同时在移动显示上仍然看起来干净且明亮。

希望您会发现这个项目像对我一样有用!

特性

  • iOS 7 启发式设计
  • 3.5” & 4” 屏幕兼容性
  • 低内存占用
  • 拖放安装
  • 肖像/横幅视图
  • 前置/后置摄像头
  • 触摸对焦
  • 可控制闪光灯
  • 自动裁剪/缩放
  • 自拍不会翻转

图标由 PixelLove 提供支持

将 SimpleCam 添加到您的项目中

1. 将 SimpleCam 文件夹添加到 Xcode

  • 解压 SimpleCam
  • 将 SimpleCam 文件夹拖入您的 Xcode 项目中
  • 确保选中“如果需要,将项目复制到目标组的文件夹中”

2. 您的 ViewController.h 文件

  • 导入 SimpleCam
  • 设置您的视图控制器作为 SimpleCam 代理
#import <UIKit/UIKit.h>
#import "SimpleCam.h"

@interface ViewController : UIViewController <SimpleCamDelegate>

@end

3. 设置代理

  • 将 SimpleCam 的代理方法添加到您的 ViewController.m 文件中
  • 关闭 SimpleCam

这是SimpleCam如何通知ViewController用户已完成操作的方法。如果有图片,则用户已拍照。如果没有,则用户未拍照就退出了相机。请确保使用SimpleCam的关闭方法来关闭SimpleCam。否则,捕获会话可能无法正确关闭,并可能导致内存泄漏。

#pragma mark SIMPLE CAM DELEGATE

- (void) simpleCam:(SimpleCam *)simpleCam didFinishWithImage:(UIImage *)image {

    if (image) {
        // simple cam finished with image
    }
    else {
        // simple cam finished w/o image
    }

    // Close simpleCam - use this as opposed to dismissViewController: to properly end photo session
    [simpleCam closeWithCompletion:^{
        NSLog(@"SimpleCam is done closing ... ");
        // It is safe to launch other ViewControllers, for instance, an editor here.
    }];
}

4. 启动SimpleCam

  • 将此代码添加到您希望SimpleCam启动的地方
SimpleCam * simpleCam = [[SimpleCam alloc]init];
simpleCam.delegate = self;    
[self presentViewController:simpleCam animated:YES completion:nil];

如果您想在用户按下按钮时启动simple cam,可以将以上代码添加到buttonPress方法中,如下所示

- (void) buttonPress:(id)sender {        
  SimpleCam * simpleCam = [[SimpleCam alloc]init];
  simpleCam.delegate = self;    
  [self presentViewController:simpleCam animated:YES completion:nil];
}

到此为止,就这么简单。SimpleCam将负责其他所有事情!

变更记录

v1.01 发布于2014年5月19日

感谢@capezzbr 和 @dkhamsing 对本次提交做出的贡献!

  • 现在可以通过调用 [simpleCam capturePhoto] 来程序捕获照片
  • 现在支持叠加控制系统(更多交互功能即将到来!)
  • 禁用照片预览以在捕获照片后立即保存照片:simpleCam.disablePhotoPreview = YES
  • 新的代理方法可用来通知相机流何时可见
- (void) simpleCamDidLoadCameraIntoView:(SimpleCam *)simpleCam {
    NSLog(@"Camera loaded ... ");
}

截图

肖像

相机(即将捕获)

预览(显示已捕获的图片)

预览 - 旋转(保持捕获图像比例)

风景

相机(即将捕获)

预览(显示已捕获的图片)

预览 - 旋转(保持捕获图像比例)