美文网首页
拍照片,扫码研究 2022-04-06 周三

拍照片,扫码研究 2022-04-06 周三

作者: 勇往直前888 | 来源:发表于2022-04-07 12:03 被阅读0次

简介

  • 在一般的应用中,会涉及到拍照片的需求。比如个人中心通常会显示头像。可以从相册选一张,也可以调用摄像头拍一张。

  • 完成这个需求,可以直接使用系统提供的UIImagePickerController。这是一个控制器,所以直接present就可以了。拍照或者选择图片的结果以delegate的形式提供,根据实际情况,进行压缩、数据传后台等操作就可以了。

第三方库

拍照片,相册取照片

系统提供的基本用用是可以的,不过要做得精美一点,方便一点,或者功能再多一点,那么就要自定义了。
GitHub上有一个第三方库专门做这个的,并且介绍是中文写的,Star也有好几千,可以尝试使用一下。

TZImagePickerController

这个第三方库内部也是采用UIImagePickerController来完成拍照的功能的,

二维码,条形码扫码

  • 与Android通用的话,可以选择ZXing和ZBar等第三方库;

  • AVFoundation提供了扫描二维码,条形码的原生支持(AVCaptureDevice),据说效率比ZXing和ZBar等第三方库更高;

  • 有一个第三方库,把原生,ZXing和ZBar三种都统筹了一下,很方便。

LBXScan

集成实践

  • 这两个库都是使用CocoaPods管理的,引入工程非常方便
# Uncomment the next line to define a global platform for your project
platform :ios, '15.0'

inhibit_all_warnings!

target 'PandaPhoto' do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!

  # Pods for PandaPhoto
  pod 'AFNetworking', '~> 4.0'
  pod 'SDWebImage', '~> 5.0'
  pod 'MBProgressHUD', '~> 1.2.0'
  pod 'Masonry'
  pod 'YYModel'
  pod 'YYCache'

  # 拍照,取照片
  pod 'TZImagePickerController'

  # 二维码,条形码扫描
  pod 'LBXScan/LBXNative','~> 2.5'
  pod 'LBXScan/LBXZXing','~> 2.5'
  pod 'LBXScan/UI','~> 2.5'

end

LBXScan的ZBar就不需要导入了,各方面都不如ZXing,只要选一个就可以了。

  • 按照GitHub官网的介绍,TZImagePickerController能够很方便地使用。
// 使用第三方库TZImagePickerController实现拍照,取照片功能
- (IBAction)pickButtonTouched:(id)sender {
    TZImagePickerController *imagePickerVc = [[TZImagePickerController alloc] initWithMaxImagesCount:9 delegate:nil];

    // You can get the photos by block, the same as by delegate.
    // 你可以通过block或者代理,来得到用户选择的照片.
    [imagePickerVc setDidFinishPickingPhotosHandle:^(NSArray<UIImage *> *photos, NSArray *assets, BOOL isSelectOriginalPhoto) {
        // photos是照片的数组,不管是选择的,还是拍照来的;
    }];
    [self presentViewController:imagePickerVc animated:YES completion:nil];
}
  • 按照GitHub官网的介绍,LBXScan用不起来。内嵌的LBXScanViewController用不起来。

  • LBXScan提供的Demo到是可以跑起来,但是push的方式并不是很好,大部分都是黑屏,效果很差。

结论

  • TZImagePickerController更新及时,一直有人在维护;如果UI和产品能够接受这种取照片的方式,推荐使用。

  • LBXScan几乎不能用,除非从他的demo中抠出对应的Controller来用。并且这种界面还不一定满足UI的需求。
    ZBar和ZXing对iOS来说没什么意义;AVCaptureDevice提供了实际的扫码功能,界面还是自定义来得方便。
    并且这个库长久没人维护。所以,这个库不建议使用。

  • 拍照片,用UIImagePickerController自己写,自定义内容很少;

  • 扫二维码、条形码,用AVCaptureDevice自己写;

  • 界面还是自定义比较好,第三方的很难满足需求;

相关文章

网友评论

      本文标题:拍照片,扫码研究 2022-04-06 周三

      本文链接:https://www.haomeiwen.com/subject/nclrsrtx.html