调用系统的相册、相机、闪光灯,可以选择相册的照片

IOS开发调用系统相机和打开闪光灯 今天给大家分享一下如何调用iphone的拍照功能和打开闪光灯,有些代码我也不太理解,很多是在网上借鉴其他人的。IOS有两种的拍照和视频的方式:1.直接使用UIImagePickerController,这个类提供了一个简单便捷的拍照与选择图片库里图片的功能。2.另一种是通过AVFoundation.framework框架完全自定义拍照的界面和选择图片库界面。我只做了第一种,就先给大家介绍第一种做法 阅读详情

#import "ViewController.h"

#import <AVFoundation/AVFoundation.h>



@interface ViewController ()<UIImagePickerControllerDelegate,UINavigationControllerDelegate>

@property (weak, nonatomic) IBOutlet UIImageView *imageview;

@property (nonatomic, strong)UIImagePickerController *pickerVC;

@property(nonatomic, strong)AVCaptureDevice *device;

@end


@implementation ViewController

- (IBAction)pickPhoto:(id)sender {

    [self setAlertVC];

}

- (IBAction)closeshared:(id)sender {

    

    // 如果闪光灯已经打开,那么把闪光灯关闭

    [self.device setTorchMode:AVCaptureTorchModeOff];

    // 解除对设备硬件的独占

    [self.device unlockForConfiguration];

}


- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    self.pickerVC = [[UIImagePickerController alloc]init];

    self.pickerVC.delegate = self;

    self.pickerVC.allowsEditing = YES;

    //    self.pickerVC.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;


}

- (void)setAlertVC{

    UIAlertController *alertVC = [UIAlertController alertControllerWithTitle:@"选择头像" message:@"本地相册或者拍照" preferredStyle:UIAlertControllerStyleActionSheet];


    UIAlertAction *photoAction = [UIAlertAction actionWithTitle:@"相册" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {

        [self goPhotoLibrary];

    }];

    UIAlertAction *camaraAction = [UIAlertAction actionWithTitle:@"拍照" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {

        [self goCamara];

    }];

    UIAlertAction *torchAction = [UIAlertAction actionWithTitle:@"拍照" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {

        [self goTorch];

    }];

    UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {

        nil;

        

    }];

    [alertVC addAction:photoAction];

    [alertVC addAction:camaraAction];

    [alertVC addAction:torchAction];

    [alertVC addAction:cancelAction];

    

    [self presentViewController:alertVC animated:YES completion:nil];

}


- (void)goPhotoLibrary{

    if ([UIImagePickerController isSourceTypeAvailable:(UIImagePickerControllerSourceTypePhotoLibrary)])

    {

        self.pickerVC.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

        [self presentViewController:self.pickerVC animated:YES completion:nil];

        

    }else{

        NSLog(@"没相册");

    }

}


- (void)goCamara{

    if ([UIImagePickerController isSourceTypeAvailable:(UIImagePickerControllerSourceTypeCamera)]) {

        

        self.pickerVC.sourceType = UIImagePickerControllerSourceTypeCamera;

        [self presentViewController:self.pickerVC animated:YES completion:nil];

        

    }else{

        

        UIAlertController *altvc =  [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:(UIAlertControllerStyleAlert)];

        UIAlertAction *action = [UIAlertAction actionWithTitle:@"不存在相机" style:UIAlertActionStyleCancel handler:nil];

        [altvc addAction:action];

        [self presentViewController:altvc animated:YES completion:nil];

    }

}


- (void)goTorch{

    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {

        

        // 返回用于捕获视频数据的设备(摄像头)(必要的步骤)

        self.device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];

        //是否有闪光灯

        if ([self.device hasTorch]) {

        // 请求独占设备的硬件性能

            [self.device lockForConfiguration:nil];

        //闪光灯关闭状态

            if (self.device.torchMode == AVCaptureTorchModeOff){

            // 打开闪光灯

            [self.device setTorchMode: AVCaptureTorchModeOn];

            

                }else{

            // 如果闪光灯已经打开,那么把闪光灯关闭

            [self.device setTorchMode:AVCaptureTorchModeOff];

            // 解除对设备硬件的独占

            [self.device unlockForConfiguration];

            }


        }

        

    }

   

}


- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info{

    NSLog(@"%@",info);

    self.imageview.image = info[@"UIImagePickerControllerEditedImage"];

    [self.pickerVC dismissViewControllerAnimated:YES completion:nil];

}


鸿蒙HarmonyOS (开发进阶)生态应用相机实现系统级相机场景 本文针对三方相机开发场景,基于HarmonyOS提供的相机开放能力,实现系统相机级别的效果和能力,比如分辨率、动图、视频防抖、连续变焦等。 阅读详情

相关推荐

Android surfaceview 自定义相机 拍照(闪光灯、前后摄像头)

android 自定义surfaceview 拍照

chuxuaner的专栏 7171

Android调用系统的拍照,打开相册功能

Android调用系统的拍照,打开相册功能 1 添加权限: uses-permission android:name="android.permission. WRITE_EXTERNAL_STORAGE" /> uses-permission android:name="android.permission.CAMERA" /> 2 设置标志(回传码) //

5ingwings(SiHao)的博客 3万+

【Android开发】实现二维码/条形码扫描应用(QR/barcode)-支持直接扫码和从相册选择图片进行识别+闪光灯

实现二维码和条形码扫描识别的 Android 应用,具有广泛的应用场景,如购物扫码、票务验证等。本项目通过结合 Android 开发技术和 zxinglibrary 库(基于传统的计算机视觉和图像处理算法来实现二维码和条形码的解码),实现二维码 / 条形码扫描应用,支持直接扫码和从相册选择图片进行识别,并可选择打开闪光灯,文末完整工程链接。

嵌入式阿齐Archie 8297

Android 调用相册或相机选择图片

/** * 裁剪 * * @param */ protected void cropPic(File file) { if (!file.exists()) { Toast.makeText(this, "图片不存在", Toast.LENGTH_LONG).show(); return

安卓学习之路 463

掌握iOS相机和相册的使用技巧

本文详细介绍了如何在iOS设备上使用相机和访问相册中的照片与视频。我们首先学习了如何通过Assets Library框架访问和保存媒体文件,随后探讨了如何检测设备的相机功能,包括前后置摄像头和闪光灯的支持情况,并且通过实例代码展示了如何实现这些功能。

weixin_31659095的博客 1039

android照相机相册选择,可以多选

android自定义照相和选择相册,可以进行多选显示并能删除所选择的相册,分有所值,大家放心下吧,后期我会优化!

android 调用相册选择多个文件,Android 打开相册拍照选择多张图片显示

public class MainActivity extendsAppCompatActivity {int REQUEST_CODE = 0;privateNineGridImageView ngiv;private ArrayListphotos;privateDialog dialog;privatecn.com.jwtimes.www.jwtimes.mAdapter mAdapter1...

weixin_36073654的博客 1137

告别抓包:一个Xposed模块教你监控抖音App的本地数据变化

本文详细介绍了如何利用Xposed框架开发模块,实现抖音App本地数据监控的技术方案。通过Hook关键方法,开发者可以实时获取用户信息、推荐算法参数等核心数据,无需Root设备即可高效调试。文章包含完整的环境配置、代码实现和优化技巧,为移动应用开发与测试提供创新解决方案。

weixin_27015733的博客 384

图片选择器,可以通过相册或者相机选择图片,可以进行图片裁剪。

最近先来无事把以前项目中用到的比较常用的功能抽取出来整理成一个demo,以后用到的时候直接拿来用,也希望能帮到其他人。整理的可能不太好,还望各位指正。 TakePhoto 介绍TakePhoto是用来从相册或文件或相机中获取图片的封装类库。TakePhoto 功能 支持通过相机拍照获取图片 支持从相册选择图片 支持从文件选择图片 支持图片裁剪(可选) 支持裁剪后图片的格式、大小设置 支持Androi

CoderCF的博客 1147

复现基于PYNQ-Z2的手写数字识别卷积加速器设计

来源雪天鱼。

eachanm的博客 968

STM32 移植LwIP 实现网线插拔自动恢复

STM32 移植LwIP 之后,能正常联网通讯,但是发现2个问题, 1、上电初始化前,未插入网线,之后就无法获取到IP地址(DHCP) 2、正常通讯过程中,拔掉网线,然后插回去,不知道如何复位 先看一下LWIP初始化代码 /** * LwIP initialization function */ int MX_LWIP_Init() { /* Initilialize the LwIP stack with RTOS */ tcpip_init( NULL, NULL );

tiantangmoke的博客 8074

Flutter自定义相机,Flutter相册选择照片

Flutter自定义相机、相册选择照片

代码小疯子 3353

绑定压力的计算方法

压强的公式为P=F/S,其中P为ACF要求的本压压强范围,S为受压面积,F为本压压头施加的力。绑定参数需要按线体按压头进行DOE确认,并使用DOE确认好的参数按压头重新绑定标识好送ACF厂商实测固化率、粒子变形的情况,避免绑定参数导致的异常,在绑定参数的设定过程中温度和时间可以使用仪器实测但绑定的压力则需要换算。工程上绑定压力换算的原则是:1、FPC属于柔性物料,柔性物料的受压面积按FPC绑定的受压面积=FPC绑定的长度。一、工程上FOG FPC本压压力换算(柔性材料以挤压的接触面积=受力面积)F=P。

weixin_53757859的博客 1533

iOS调用系统照相机和闪光灯功能

今天给大家分享一下如何调用iphone的拍照功能和打开闪光灯,有些代码我也不太理解,很多是在网上借鉴其他人的。   IOS有两种的拍照和视频的方式:   1.直接使用UIImagePickerController,这个类提供了一个简单便捷的拍照与选择图片库里图片的功能。   2.另一种是通过AVFoundation.framework框架完全自定义拍照的界面和选择图片库界面。

CuikeyiApple的博客 1313

ESP32-S3模组上跑通esp32-camera(32)

ESP32-S3模组上跑通esp32-camera(32)

phmatthaus的专栏 772

对MixPad精灵(触屏语音开关)进行解剖分析

概述 最近有点忙,已经很久没有更新文章了,对不起各位网友啦~ 这次对ORVIBO的新产品:MixPad精灵款的来个剖析,希望对大家有所帮助! 首先,我买了一台对应的设备,直接去官网采购,价格吗还算OK,400多的价格。 拆箱的过程我就不写了,简单的上个图就行了。 一、拆包: 主屏板包装盒(顶部): 主屏板包装盒(底部): 后盖电源部分无内容,我就不拍了,给优快云空间省点存储位置。 二、设备剖析开始 接下来,我们开始对设备进行剖析,步骤如下: 1、拆掉主屏板后盖板,...

LeeKwen的专栏 3944

调用手机相机相册_原来iPhone自带相册竟然这么好用!这么多年手机白用了……...

最近,小北我经常会在后台看到留言说,安利的很多修图app都由于手机内存不足而导致无法下载安装,怪我了,怪我了。。咱人民攻摄一直“Love&Peace”,所以为了那些内存小,暂时还不想更换手机的朋友,特别推出这期内容:如何用iPhone自带的相册去修图!如果现在的你还在只用自带相册看看照片,然后点个删除,那你真的就OUT了,赶紧搬把小凳子坐好,认真做笔记,因为从现在开始,我会把那些你想到的没想到的i...

weixin_29237635的博客 1118

WPF实现棋盘式图片切换效果

实现效果如下: 思路:在自定义控件中放置两个Image控件,点击前后翻页按钮时对图片进行裁剪,随机打乱顺序后添加动作。 步骤: 1、MyImageControl控件 /// <summary> /// MyImageControl.xaml 的交互逻辑 /// </summary> public partial class MyImageControl : UserControl { public static r

dnazhd的博客 1125

android 圆形相机预览拍照_Flutter自定义相机,Flutter相册选择照片

题记—— 执剑天涯,从你的点滴积累开始,所及之处,必精益求精。实际项目开发中,谷歌官方推荐的几个相机插件总是满足不了需要,更令人不舒服的是在华为某些高版本系列的手机中使用系统相机拍照或者是选择照片会让应用闪退。小编也分析了原因,在这些手机拍照的照片过大,在手机相机拍完的那一瞬间,手机系统还没有处理完照片,然后应用就去读取这个照片,导致系统异常崩溃。至本插件编写的 0.0.1 版本时,各相机应用插件...

weixin_39888807的博客 491

ransac拟合2D圆(三点定圆 c++详细版)

RANSAC(Random Sample Consensus,随机采样一致性)算法是一种基于随机采样的迭代算法,主要用于从一组包含大量噪声和异常值(外点)的数据中估计数学模型的参数。

twnkie的博客 1047

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

30天学会OC-22:相机与相册

本文介绍了如何在iOS应用中使用UIImagePickerController访问设备相机和相册。主要内容包括:1)UIImagePickerController的基本功能,如选择媒体类型(图片/视频)和来源(相册/相机);2)关键属性设置,包括sourceType、mediaTypes和allowsEditing;3)代理协议UIImagePickerControllerDelegate的使用方法,处理选择结果和取消操作;4)提供代码示例展示如何从相册选择图片和使用相机拍照。文章还提到需要检查设备功能可用

smileKH的博客 553

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Flutter 微信风格相机与相册选择器实战:从集成到权限处理全解析

本文详细解析了如何在Flutter应用中集成微信风格的相机与相册选择器。通过实战演示,从依赖引入、Android与iOS的权限配置,到核心功能实现与深度优化,帮助开发者快速构建兼具优秀用户体验与稳定性的多媒体选择模块。文章重点剖析了权限处理的正确姿势,并提供了进阶技巧与避坑指南。

git9versioner的博客 360

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

上一篇: 2种 画路径方法
下一篇: 富文本带属性的字符串NSMutableAttributedString
SpringJustin
博客等级 码龄11年 2粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值