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

黑马程序员Pink的javaScript课程APIday4

本文摘要:介绍了JavaScript中日期对象的实例化方法(有参/无参)及三种获取时间戳的方式。讲解了DOM节点操作,包括节点查找(父、子、兄弟节点)、增加/克隆/删除节点的方法。详细说明了移动端touch事件和Swiper插件的使用,包括自动播放和小圆点配置。最后提及学成在线案例中表单验证和取消默认跳转的实现。

JLY19970726的博客 826

ALAssetsLibrary-代码操作iOS相册资源

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

pk_20120716的专栏 470

vtk相机_分别用 VTK 体绘制和面绘制来实现医学图像三维重建;

序言,VTK介绍:VTK 全称为 The Visualization Toolkit (可视化工具),是一个开源、跨平台、自由获取、支持并行计算的图形应用函数;拥有3D 渲染的最新工具、提供3D交互模式以及2D绘图等。VTK 包含一个C++类库,目前提供了众多语言接口,例如 Java、Python、TCL;在三维函数库OpenGL 的基础上采用面向对象设计方法发展起来图形学基本概念和数据...

weixin_39665302的博客 689

Windows加域迁移避坑指南:Profwiz工具实战中的5个常见问题与解决方案

本文详细解析了使用Profwiz工具进行Windows加域迁移时的5个常见问题及解决方案,包括临时配置文件生成、密码策略冲突、SID冲突等。通过实战案例和优化技巧,帮助IT运维团队高效完成账户配置文件迁移,确保Active Directory环境下的数据完整性和权限无缝衔接。

q9r0s的博客 520

iOS 代码申请相册相机权限

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

weixin_42015940的博客 1226

ECU-TEST 快速入门

ECU-TEST 是由位于德国德累斯顿的TraceTronic公司开发的一款用于嵌入式系统测试验证软件工具。自从2003年首次发布ECU-TEST ,该软件成为了汽车ECU开发的标准工具 ,同时也逐步成为了重型机械和工业自动化开发的标准工具 。该软件是起源自于一个控制单元的系统化测试的项目研究,从而为从德累斯顿工业大学脱离出来的TraceTronic公司奠定了基础。ECU-TEST旨在完成测试案例的规范化、评估、求解和归档。得益于该软件包含大量的自动化测试方法使得测试案例的所有必要功能如创建、求解和评估

wangying202的博客 1万+

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

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

神隐 2014

Cartool实战:手把手教你完成静息态EEG微状态分析的组水平聚类与模板匹配

本文详细解析了使用Cartool进行静息态EEG微状态分析的组水平聚类与模板匹配全流程。从数据准备、算法选择到参数优化,提供了k-means与T-AAHC算法的实操建议,帮助研究者避开常见陷阱,获得可靠分析结果。特别针对最优类别数确定、模板匹配参数设置等核心环节进行深入探讨,适用于认知神经科学领域的EEG微状态研究。

weixin_31220401的博客 263

最新测算源码PHP算命源码-风水八字-八字起名-塔罗牌占卜

未来,随着技术的发展和用户需求的变化,我们可以继续对系统进行升级和优化,以满足更多用户的需求和期望。数据库设计:创建一个名为bazi的数据库表,包含以下字段:id(自增ID)、name(姓名)、sex(性别)、birth_date(出生日期)、birth_time(出生时间)、bazi(八字结果)。数据库设计:创建一个包含塔罗牌信息的数据库表,如tarot_cards,包含字段:id(塔罗牌ID)、name(塔罗牌名称)、meaning(塔罗牌含义)等。根据操作系统的不同,PHP的安装方法会有所不同。

shanbeizi的博客 2420

ios 相机和相册权限

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

C 1162

Open3D 使用CPD算法对点云配准【2025最新版】

Coherent Point Drift相干点漂移算法实现点云配准(python代码)博客长期更新,本文最近更新时间为:2025年2月2日。

点云侠的博客 8万+

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

使用PhotoKit自定义相册,

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

AUTOSAR进阶图解==>AUTOSAR_SWS_CANStateManager

AUTOSAR CAN状态管理器(CanSM)摘要 CanSM是AUTOSAR通信栈中的关键模块,负责管理CAN网络状态和模式转换。主要功能包括: 控制CAN控制器/收发器工作模式(STARTED/STOPPED,NORMAL/STANDBY) 处理三种网络状态(全通信、静默通信、无通信)之间的转换 监控和处理总线关闭(Bus-Off)事件 与ComM、CanIf、BswM等模块协同工作 CanSM通过状态机管理网络状态转换,支持可配置的总线关闭恢复策略。它为每个CAN网络维护独立的状态机,实现网络状态的精

一名留德华的,康德的信徒的,专注于汽车电子领域的博客 5580

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

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

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

weixin_39630126的博客 4158

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

上一篇: 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、付费专栏及课程。

余额充值