iOS开发 swift -- 获取相册相机

iOS 相机开发总结 # Camera 组件讲解 IOS相机 ## UIImagePickerController 1.IOS中扑捉照片和视频最简单的方法是使用UIImagePickerController,一个封装了完整视频捕获管线和相机 UI 的 view controller。 2.UIImagePickerController通过cameraOverlayView自定义UI(需要... 阅读详情

一 代理

swift一定要遵循UIImagePickerControllerDelegate,UINavigationControllerDelegate俩个代理

二 info.plist

    在info.plist中加入安全域名白名单(右键info.plist用source code打开)
    <key>NSCameraUsageDescription</key>
    <string>访问相机</string>
    <key>NSPhotoLibraryUsageDescription</key>
    <string>访问相册</string>

三 代码示例

func addIcon()  {

        let alertAction = UIAlertController.init(title: nil, message: nil, preferredStyle: .actionSheet)
        alertAction.addAction(UIAlertAction.init(title: "获取相机", style: .default, handler: { (alertCamera) in

            let picker:UIImagePickerController = UIImagePickerController()
            picker.delegate = self as UIImagePickerControllerDelegate & UINavigationControllerDelegate
            picker.sourceType = .camera
            picker.allowsEditing = true
            if UIImagePickerController.isSourceTypeAvailable(.camera){

                self.present(picker, animated: true, completion: { () -> Void in

                })
            }else{
                MBProgressHUD.showForError(to: self.view, text: "为授予防问相机权限", completion: nil)
            }
        }))

        alertAction.addAction(UIAlertAction.init(title: "获取相册", style:.default, handler: { (alertPhpto) in

            let picker:UIImagePickerController = UIImagePickerController()
            picker.delegate = self as UIImagePickerControllerDelegate & UINavigationControllerDelegate
            picker.sourceType = .photoLibrary
            picker.allowsEditing = true

            if UIImagePickerController.isSourceTypeAvailable(.photoLibrary){

                self.present(picker, animated: true, completion: {
                    () -> Void in
                })
            }else{
                MBProgressHUD.showForError(to: self.view, text: "为授予防问相册权限", completion: nil)
            }
        }))

        alertAction.addAction(UIAlertAction.init(title: "取消", style: .cancel, handler: { (alertCancel) in

        }))

        self.present(alertAction, animated: true, completion: nil)
    }

    // MARK: ImagePicker Delegate 选择图片成功后代理
    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {

        if let chosenImage =  info[UIImagePickerControllerOriginalImage] as? UIImage {
            picker.dismiss(animated: true) {
                self.iconImage.image = chosenImage
            }
        //处理传入后台
        }
    }

四 上传到后台

    /// 上传图片
    ///
    /// - Parameters:
    ///   - path: <#path description#>
    ///   - image: <#image description#>
    ///   - completion: <#completion description#>
    class func uploadImage(path: String, image: UIImage, completion: @escaping (_ succeeded: Bool, _ url: String?) -> Void) {

        /* 签名 可忽略
        let timestamp  = String(Int(NSDate().timeIntervalSince1970 * 1000))
        var _paramters = [String: Any]()
        _paramters["timestamp"] = timestamp
        let sortedKeys = _paramters.keys.sorted()
        var temp = sortedKeys.map({ "\($0)=\(_paramters[$0]!)" }).joined(separator: "&")
        temp += "&--------"
        let sign = temp.md5().uppercased()
        _paramters["sign"] = sign
        */

        Alamofire.upload(multipartFormData: { (multipartFormData) in
            let data = UIImageJPEGRepresentation(image, 0.9)
            multipartFormData.append(data!, withName: "file", fileName: "image.png", mimeType: "image/png")

            for (key, value) in _paramters {
                multipartFormData.append((value as AnyObject).data(using: String.Encoding.utf8.rawValue)!, withName: key)
            }
        }, to: Constant.baseURL + path) { (result) in
            switch result {
            case .success(let upload, _, _):
                upload.responseJSON(completionHandler: { (response) in
                    completion(true, JSON(response.data!)["data"].string)
                })
            case .failure(let error):
                print(error)
                completion(false, nil)
            }
        }
    }

如有不妥,请多多指教



作者:Hayley__
链接:http://www.jianshu.com/p/00d2de98c6f4
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
用Swift实现iOS相机及相册图片上传 最近要做一个iOS相机及相册图片上传,其中遇到了这些问题:1、图片增删在UICollectionView里的变化;2、获取相机拍摄的照片和相册的照片;3、将PHAsset对象转为UIImage对象; 具体实现过程: 首先整个控件结构如图所示: storyboard长这样: 拖动三个UIViewController如图所示,其中:AlbumImageCollectionViewCont 阅读详情

相关推荐

swift 从手机选照片_iOS9中,swift判断相机,相册权限,选取图片为头像(示例代码)...

在iOS7以后要打开手机摄像头或者相册的话都需要权限,在iOS9中更是更新了相册相关api的调用首先新建一个swift工程,在SB中放上一个按钮,并在viewController中拖出点击事件ok!按钮和事件设置好以后,我们来引入要用到的库,判断摄像头权限,需要引入AVFoundation.framework,搜索并进行添加在ViewController中 import AVFoundation并...

weixin_39598501的博客 374

iOS-AVFoundation自定义相机的一点积累

AVFoundation视频拍摄核心APIdemo地址 目录 [toc] 相机基本实现步骤 1.创建session(捕捉会话) 2.创建device input(捕捉设备输入) 3.预览view 4.创建capture output(捕捉输出) 5.拍照、录视频(元数据转成图片或文件) 捕捉会话——AVCaptureSessionAVCaptureSession(

u014604106的博客 1479

iOS 相机权限以及相册权限访问

今天在写一个关于人脸识别的demo时,发现相机相册调取不了。忽然想起来工程info.plist里边需要设置两个参数,但是就是想不起来参数叫什么。网上搜了好一会儿才找到,所以就写篇文字,记录一下,方便以后查找。 想要吊起相册跟相机,首先得在info.plist里设置参数,在你吊起相应功能的时候获取用户的同意,相应设备才能被吊起来。闲话不多说,上图:          1.设置info.

Xia0Liang的专栏 1万+

iOS开发swift如何调用系统相册和相机获取图片设置用户头像

iOS开发swift如何调用系统相册和相机获取图片都是用UIImagePickerController  1.加上protocol   UIImagePickerControllerDelegate,UINavigationControllerDelegate 2.打开系统相册或相机的代码  pick.allowsEditing = true;(这个控制要不要进入

casun_li的专栏 1264

Swift iOS权限访问

Swift 通知、相机、相册权限 封装 // // YAuthorization.swift // ZXCloud // // Created by Seasons on 2020/2/27. // Copyright © 2020 zhongxiao. All rights reserved. // import UIKit import Photos import AssetsLibrary import AVFoundation typealias AuthHandel = (Bool)

痞人芳芳的博客 681

iOS开发:调用系统自带相机以及获取相册照片的功能实现

在iOS开发过程中,经常用到的技术之一就是APP上传图片了,这个知识点虽然不难,但是上传图片的需求却是各不相同,比如有些时候需要你一次性在相册中同时多选指定数量的照片,而且选择的照片数量不确定,有时候又需要调用系统相机拍照图片。针对这种不同需求的上传照片,只要掌握核心的上传照片的原理,其他的内容都是大同小异,不管有再变态的需求你也会驾驭的游刃有余。先通过介绍通过APP上传一个用户头像来介绍通过系统相

全沾软贱开发攻城狮 3万+

iOS相册、相机、通讯录权限获取

iOS相册、相机、通讯录权限获取   说明 这是本人写的一个工具,用以便利的处理各种权限获取的操作,目前提供相册、照相机、通讯录的权限获取操作,参考了 http://www.jianshu.com/p/a05bc0598e2a 的源码并进行了部分修改。   源码 https://github.com/YouXianMing/AuthorizationManager   细节 以下是抽象基类以及使...

weixin_34015860的博客 223

26、iOS相机功能开发全攻略

本博客详细介绍了iOS平台上相机功能的开发方法,涵盖使用UIImagePickerController实现拍照、图片编辑和保存,视频录制与编辑功能,以及如何通过自定义覆盖层增强相机界面。此外,还介绍了使用AVCaptureSession实现相机预览的方法,并提供了功能整合的综合示例,帮助开发者构建功能完善的相机应用。

u6v7w8x的博客 124

iOS--app自定义相册--从自定义的相册中获取图片

一.获取单张图片 思路: 1.利用UIImagePickerController可以从系统自带的App(照片\相机)中获得图片 2.设置代理,遵守代理协议 注意这个UIImagePickerController类比较特殊,需要遵守两个代理协议 @interface ViewController () <UIImagePickerControllerDelegate, U...

weixin_33881140的博客 285

掌握iOS开发:实现相机摄像头功能

本文还有配套的精品资源,点击获取 简介:在iOS应用中,相机功能的集成对于用户交互至关重要。本教程介绍如何使用 UIImagePickerController 这一核心框架在应用中调用摄像头,并创建基础的相机界面。 UIImagePickerController 提供了预设的用户界面和功能,例如拍摄预览、拍照、录像和相册选择。本教程详细说明了如何...

weixin_35815766的博客 2878

Swift-ImagePicker:打造iOS应用一体化相机与相册解决方案

Swift-ImagePicker是一款专为iOS平台设计的轻量级图像选择与拍摄一体化解决方案,基于Swift语言开发,旨在简化开发者在应用中集成相机和相册功能的复杂度。它不仅封装了原生的繁琐配置,还扩展了诸如实时滤镜、界面自定义、权限管理等高级特性,显著提升了用户体验和开发效率。通过模块化设计与面向协议编程(POP),Swift-ImagePicker实现了高内聚、低耦合的架构优势。其核心组件采用协议驱动,如统一图像输入路径,配合工厂模式动态路由至相机或相册模块,提升可维护性与测试性。

weixin_30356433的博客 551

iOS9中,Swift判断相机,相册权限,选取图片为头像

在iOS7以后要打开手机摄像头或者相册的话都需要权限,在iOS9中更是更新了相册相关api的调用 首先新建一个swift工程,在SB中放上一个按钮,并在viewController中拖出点击事件 ok!按钮和事件设置好以后,我们来引入要用到的库,判断摄像头权限,需要引入AVFoundation.framework,搜索并进行添加

crypond的专栏 7024

避坑指南:ESP32S3驱动INMP441麦克风时的常见硬件冲突与解决方案

本文详细解析了ESP32S3驱动INMP441麦克风时常见的硬件冲突问题,包括GPIO资源冲突、电源噪声、I2S时钟同步等,并提供了实用的解决方案和优化策略。通过实测数据和代码示例,帮助开发者快速排查和解决音频设备开发中的疑难问题,提升系统稳定性和音频质量。

embedding5hiker的博客 943

ALAssetsLibrary-代码操作iOS相册资源

http://blog.sina.com.cn/s/blog_7b9d64af0101cfdl.html 在iOS中,我们调用摄像头和选择相册中的资源,我们可以使用:UIImagePickerController类来完成。 当然,我们也可以不使用UI的形式来访问iOS设备的相册资源。 那就是使用:ALAssetsLibrary 一、ALAsset

pk_20120716的专栏 470

COMSOL仿真避坑指南:列管反应器模拟中多孔介质与化学反应设置的5个常见错误

本文详细解析了COMSOL仿真中列管反应器模拟的5个常见错误,包括多孔介质模型选择、化学反应接口配置、对流扩散方程处理、薄层热阻设置及网格独立性验证。特别针对多孔介质与化学反应设置的误区,提供了实用的判断标准和修正方法,帮助工程师避免计算偏差,提升仿真精度。

weixin_29597551的博客 324

手把手教你用MATLAB/Simulink模拟微电网潮流方向(附代码下载)

本文提供了一份详细的MATLAB/Simulink微电网潮流仿真实战指南。通过手把手教学,指导读者从零搭建包含光伏、储能和负荷的微电网模型,并模拟并网、孤岛等多种运行场景下的潮流方向变化。文章核心在于利用Simulink实现微电网的动态潮流分析与可视化,帮助工程师深入理解分布式能源系统中的功率平衡与控制策略。

weixin_28314575的博客 107

iOS 代码申请相册相机权限

我整理的一些关于【IDE】的项目学习资料(附讲解~~)和大家一起分享、学习一下:https://d.51cto.com/f2PFnNiOS开发:如何申请相册和相机权限 在现代应用程序中,相机和照片库是提供用户体验的重要组成部分。为了使用这些功能,开发者需要在iOS应用中申请相应的权限。本文将介绍如何在iOS中申请相册和相...

weixin_42015940的博客 1226

Java网页访问报错?手把手教你解决JRE插件缺失和浏览器拦截问题(附详细截图)

本文针对Java网页访问时常见的JRE插件缺失和浏览器拦截问题,提供了详细的诊断与解决方案。文章首先解释了问题根源在于现代浏览器出于安全考虑停止了对Java插件的支持,然后手把手指导用户确认Java安装、在控制面板配置安全站点列表,并针对Chrome、Edge、Firefox等主流浏览器的不同拦截机制给出了具体的应对策略,最后提供了系统性的故障排查清单,帮助用户彻底解决访问障碍。

weixin_29233857的博客 223

ios开发 使用系统相册和相机

iOS开发 使用系统的相册和相机 第一步,在info.plist文件中添加两个key, 相机权限 NSPhotoLibraryUsageDescription photoLibraryDesciption 相册权限 NSCameraUsageDescription cameraDesciption 第二步、在使用到的头文件中导入代理 UINavig

神隐 2014

STM32F103跑LVGL,用DMA加速刷屏,800*480大屏也能丝滑

本文详细介绍了如何在STM32F103芯片上通过DMA加速和内存优化,实现800*480大屏的LVGL流畅运行。通过FSMC+DMA硬件架构优化、双缓冲机制和LVGL参数调优,显著提升了界面刷新率和响应速度,适用于嵌入式GUI开发中的高性能需求场景。

weixin_30357231的博客 376

YOLOv8损失函数升级:从CIoU到Wise-IoU v3的实战调优与避坑指南

本文详细介绍了如何将YOLOv8的损失函数从CIoU升级到Wise-IoU v3,以提升目标检测性能,特别是在小目标检测和样本不均衡场景下的表现。通过实战调优步骤和避坑指南,帮助开发者有效应用Wise-IoU v3的动态聚焦机制和单调性控制,显著提升模型精度和训练稳定性。

weixin_33737774的博客 590

ios 相机和相册权限

用到了记录下. 须先在info.plist中添加两个keyNSPhotoLibraryUsageDescription, 和NSCameraUsageDescription, 内容填提示内容. 相机 // 使用 self.cameraPermissions(authorizedBlock: { print("打开相机") }, deniedBlock: { print("没...

C 1162

[QMT量化交易小白入门]-二十四、年化收益47%的全球核心资产轮动策略(含代码解析)

m_days = 25 #动量参考天数period=200m_days被设置为25,表示动量参考的天数为25天;period被设置为200,用于指定获取市场数据的周期长度。

木头大左的博客 2971

iOS开发获取系统相册资源,自定义相册(PhotoKit)

使用PhotoKit自定义相册,

一隅红尘半生烟雨的博客 2964

ICLR 2025 | MambaPEFT: 探索针对Mamba的参数高效微调方法

通过利用海量数据构建大型模型,基于Transformer的模型生态系统已逐步确立。参数高效微调(PEFT)是一项至关重要的技术,它能以最低成本将这些模型应用于下游任务,同时实现高效的性能表现。最近,基于状态空间模型(SSM)的Mamba模型作为Transformer的潜在替代方案受到了广泛关注。尽管已经提出了许多基于Mamba的大规模模型,但如何高效地将预训练的Mamba模型应用于下游任务仍有待研究。在本文中,作者对适用于Mamba的PEFT方法展开了探索性分析。

小白学视觉 327

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

swift 将图片保存到本地_Swift - 保存图片到系统相册(相机胶卷),并获取存放路径、缩略图...

(本文代码已升级至Swift3)有时我们需要把图像(比如:从网络上获取的图片、程序自己生成的图片等)保存到系统相册(照片)中,通常有两种办法:一是使用UIImageWriteToSavedPhotosAlbum()方法保存,二是使用 Photos框架来实现。(照片库 ALAssetsLibrary以后会被废弃,所以不建议继续使用。)下面以将imageView中的图像保存到相册为例,分别演示这两种...

weixin_39630126的博客 4158

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

上一篇: iOS reason: 'invalid nib registered for identifier (GroupMustKnowViewCell) - nib must contain exactl
下一篇: Swift - HTTP网络操作库Alamofire使用详解1(配置,以及数据请求)
iOS_yanmy
博客等级 码龄10年 14粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值