国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

iOS——調(diào)用系統(tǒng)相冊(cè)和相機(jī)

這篇具有很好參考價(jià)值的文章主要介紹了iOS——調(diào)用系統(tǒng)相冊(cè)和相機(jī)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

UIImagePickerController

調(diào)用相冊(cè)需要用到UIImagePickerController,這是iOS系統(tǒng)提供的和系統(tǒng)的相冊(cè)和相機(jī)交互的一個(gè)類,可以用來獲取相冊(cè)的照片,也可以調(diào)用系統(tǒng)的相機(jī)拍攝照片或者視頻。該類的繼承結(jié)構(gòu)是:

UIImagePickerController–>UINavigationController–>UIViewController–>UIResponder–>NSObject

調(diào)用相冊(cè):

  • 首先需要導(dǎo)入對(duì)應(yīng)的庫和聲明相關(guān)的屬性:

#import <UIKit/UIKit.h>
#import <AVFoundation/AVFoundation.h>
#import <MobileCoreServices/MobileCoreServices.h>
#import <MediaPlayer/MediaPlayer.h>
#import <AVKit/AVKit.h>


@interface ViewController : UIViewController<UIImagePickerControllerDelegate, UINavigationControllerDelegate>

@property (nonatomic, strong) UIImageView *imageView;
@property (nonatomic, strong) UIImagePickerController *imagePicker;

@end

  • 獲取相冊(cè)信息:

//點(diǎn)擊按鈕執(zhí)行調(diào)用手機(jī)相冊(cè)的事件
- (void) selectPhoto {
    //檢查當(dāng)前設(shè)備是否支持使用相冊(cè)作為照片的源
    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {
        //創(chuàng)建UIImagePickerController實(shí)例對(duì)象
        UIImagePickerController *picker = [[UIImagePickerController alloc] init];
        //設(shè)置照片的源為相冊(cè)
        picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
        //設(shè)置允許用戶對(duì)照片進(jìn)行編輯、即用戶可以對(duì)照片進(jìn)行裁剪、旋轉(zhuǎn)等操作
        picker.allowsEditing = YES;
        //設(shè)置picker的代理
        picker.delegate = self;
        //退出picker模態(tài)視圖
        [self presentViewController:picker animated:YES completion:nil];
    } else {
        NSLog(@"照片源不可用");
    }
}


// UIImagePickerControllerDelegate的協(xié)議方法,用于在用戶選擇媒體(照片或視頻)后進(jìn)行回調(diào),其中info是用戶選擇的媒體的信息的字典,字典中的鍵是枚舉值UIImagePickerControllerInfoKey,它定義了一系列用于訪問 info 字典中特定信息的鍵
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<UIImagePickerControllerInfoKey,id> *)info {
    //從info字典中獲取編輯后的圖片。UIImagePickerControllerEditedImage是一個(gè)鍵,表示用戶在相冊(cè)中選擇照片并進(jìn)行了編輯的情況下獲取的照片,如果用戶沒有編輯,就使用UIImagePickerControllerOriginalImage獲取原始圖片
    UIImage *image = info[@"UIImagePickerControllerEditedImage"];
    [self.imageButton setImage:image forState:UIControlStateNormal];
    [self dismissViewControllerAnimated:YES completion:nil];
    //使用異步的方式將圖片保存到沙盒的代碼塊
    dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    //獲取應(yīng)用的沙盒目錄路徑數(shù)組
    //    NSSearchPathForDirectoriesInDomains: 這是一個(gè) Foundation 框架提供的函數(shù),用于獲取指定域中指定文件夾的路徑。在這里,我們使用它來獲取 "Documents" 目錄的路徑。
    //    NSDocumentDirectory: 這是一個(gè)枚舉值,表示我們想要獲取的文件夾是應(yīng)用程序沙盒中的 "Documents" 目錄。"Documents" 目錄是應(yīng)用程序可以存儲(chǔ)用戶數(shù)據(jù)的地方。
    //    NSUserDomainMask: 這是一個(gè)枚舉值,指定了我們要在哪個(gè)域中搜索路徑。NSUserDomainMask 表示搜索用戶的主目錄。
    //    YES: 這是一個(gè)布爾值,表示是否展開波浪線 ("~") 縮寫。設(shè)置為 YES 表示展開波浪線,得到的路徑將是完整的絕對(duì)路徑。
    //    NSArray *docs: 這是一個(gè)包含路徑的數(shù)組,其中第一個(gè)元素就是 "Documents" 目錄的路徑。
        NSArray *docs = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        //docs[0]就是"Documents" 目錄的路徑,然后將照片保存為A48538182112B436F433E06CD04E131A.jpg
        NSString *imagePath = [docs[0]stringByAppendingPathComponent:@"A48538182112B436F433E06CD04E131A.jpg"];
        //將圖片轉(zhuǎn)換為 PNG 格式的二進(jìn)制數(shù)據(jù)
        NSData *imageData = UIImagePNGRepresentation(image);
        //將圖片的二進(jìn)制數(shù)據(jù)寫入文件,實(shí)現(xiàn)保存文件到沙盒的操作。atomically:YES表示寫入操作要么完全成功,要么完全不成功,確保文件的完整性
        [imageData writeToFile:imagePath atomically:YES];
    });
}

以下是一些 UIImagePickerControllerInfoKey 中定義的常見鍵:
UIImagePickerControllerMediaType: 表示媒體的類型,是圖片還是視頻。
UIImagePickerControllerOriginalImage: 表示原始圖片。
UIImagePickerControllerEditedImage: 表示用戶編輯后的圖片。
UIImagePickerControllerMediaURL: 表示媒體的 URL,通常用于視頻。

運(yùn)行結(jié)果:
iOS——調(diào)用系統(tǒng)相冊(cè)和相機(jī),ios,objective-c,xcode,macos
iOS——調(diào)用系統(tǒng)相冊(cè)和相機(jī),ios,objective-c,xcode,macos
iOS——調(diào)用系統(tǒng)相冊(cè)和相機(jī),ios,objective-c,xcode,macos文章來源地址http://www.zghlxwxcb.cn/news/detail-755944.html

調(diào)用相機(jī)


UIImagePickerController* imagePicker = [[UIImagePickerController alloc] init];
        BOOL isCamera = [UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceFront]; //判斷相機(jī)可不可用
        if (!isCamera) {
            NSLog(@"沒有攝像頭");
            return;
        }
        imagePicker.delegate = self;   //設(shè)置代理
        imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera; //數(shù)據(jù)來源于相機(jī)
        imagePicker.allowsEditing = YES;
            NSLog(@"=======確認(rèn)使用相機(jī)========");
        }];

  • 相機(jī)的類型:
typedef NS_ENUM(NSInteger, UIImagePickerControllerCameraDevice) {
    UIImagePickerControllerCameraDeviceRear, //后置攝像頭
    UIImagePickerControllerCameraDeviceFront //前置攝像頭
} 

到了這里,關(guān)于iOS——調(diào)用系統(tǒng)相冊(cè)和相機(jī)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • iOS —— xcode14兼容 iOS9~iOS10系統(tǒng)

    iOS —— xcode14兼容 iOS9~iOS10系統(tǒng)

    xcode14兼容 iOS9~iOS10系統(tǒng) 在Xcode升級(jí)到Xcode14以后,系統(tǒng)的支持版本升級(jí)到了iOS11.0。但是我們項(xiàng)目需要支持iOS9,腳本打包錯(cuò)誤提示: The iOS deployment target \\\'IPHONEOS_DEPLOYMENT_TARGET\\\' is set to 9.0, but the range of supported deployment target versions is 11.0 to 16.2.99. 下面記錄適配過程。 適配過程同

    2024年02月09日
    瀏覽(17)
  • MacOS 14 系統(tǒng) XCode15、 Flutter 開發(fā) IOS

    MacOS 14 系統(tǒng) XCode15、 Flutter 開發(fā) IOS

    MacOS14 Sonoma 安裝 Flutter 開發(fā)環(huán)境 MacOS 系統(tǒng) Flutter開發(fā)Android 環(huán)境配置 MacOS 系統(tǒng) Flutter開發(fā)IOS 環(huán)境配置??????? 前面我們已經(jīng)在MacOS14 M3芯片上安裝好 Flutter環(huán)境,包括開發(fā)工具 VsCode 、Android Stuiod,那么flutter如何開發(fā)IOS呢? 我們知道IOS開發(fā)語言為 objcet-c或者 swift,F(xiàn)lutter是

    2024年02月03日
    瀏覽(23)
  • 使用Xcode 14.3 打包,在iOS13 系統(tǒng)上閃退問題

    Date/Time: ? ? ? ? ? 2023-04-21 16:49:28.3937 +0800 Launch Time: ? ? ? ? 2023-04-21 16:49:27.7110 +0800 OS Version: ? ? ? ? ?iPhone OS 13.4.1 (17E262) Release Type: ? ? ? ?User Baseband Version: ? ?1.05.28 Report Version: ? ? ?104 Exception Type: ?EXC_CRASH (SIGABRT) Exception Codes: 0x0000000000000000, 0x0000000000000000 Exception No

    2024年02月06日
    瀏覽(26)
  • 蘋果最新系統(tǒng)iOS 17的調(diào)試和適配方法 - Xcode 14.3.1 真機(jī)調(diào)試指南

    蘋果最新系統(tǒng)iOS 17的調(diào)試和適配方法 - Xcode 14.3.1 真機(jī)調(diào)試指南

    最近蘋果發(fā)布了iOS 17作為其最新操作系統(tǒng)版本,作為開發(fā)者,你可能需要了解如何在Xcode 14.3.1中進(jìn)行真機(jī)調(diào)試和適配。本文將為你詳細(xì)介紹步驟和注意事項(xiàng)。 I. 檢查Xcode版本 在開始之前,確保你已經(jīng)安裝了Xcode 14.3.1或更高版本。你可以在Xcode菜單中選擇\\\"關(guān)于Xcode\\\"來查看具體版

    2024年01月17日
    瀏覽(27)
  • 安卓WebView(H5)調(diào)用原生相機(jī)及相冊(cè)

    安卓WebView(H5)調(diào)用原生相機(jī)及相冊(cè)

    在開始敘述正文之前筆者先聲明一下應(yīng)用場景:例如在網(wǎng)頁上的即時(shí)通訊需要能拍照或者從圖庫選擇圖片來進(jìn)行上傳,此場景下就可以用到這篇文章的內(nèi)容 正文 首先,如果你已經(jīng)把相機(jī)以及訪問文件夾的權(quán)限都加上了并且WebView的基礎(chǔ)操作都做完了,就差上傳圖片了的話那就參

    2024年02月11日
    瀏覽(27)
  • 微信小程序調(diào)用相機(jī)拍攝或手機(jī)相冊(cè)

    微信小程序調(diào)用相機(jī)拍攝或手機(jī)相冊(cè)

    拍攝或從手機(jī)相冊(cè)中選擇圖片或視頻。

    2024年01月16日
    瀏覽(25)
  • #Uniapp:uni.chooseImage(OBJECT)--從本地相冊(cè)選擇圖片或使用相機(jī)拍照 & uni.uploadFile(OBJECT) --- 上傳文件&onPageScroll滾動(dòng)

    uni.chooseImage(OBJECT)–從本地相冊(cè)選擇圖片或使用相機(jī)拍照 OBJECT 參數(shù)說明 參數(shù)名 類型 必填 說明 平臺(tái)差異說明 count Number 否 最多可以選擇的圖片張數(shù),默認(rèn)9 見下方說明 sizeType Array 否 original 原圖,compressed 壓縮圖,默認(rèn)二者都有 App、微信小程序、支付寶小程序、百度小程序

    2024年04月23日
    瀏覽(28)
  • (flutter)黑蘋果系統(tǒng) Xcode iOS flutter 跑通真機(jī)模擬器 此oc clover 彼oc swift

    (flutter)黑蘋果系統(tǒng) Xcode iOS flutter 跑通真機(jī)模擬器 此oc clover 彼oc swift

    前段時(shí)間寫了關(guān)于flutter的一系列基礎(chǔ)知識(shí)和入門的一些坑,中間把ios端的項(xiàng)目編譯部署等工作一帶而過,這里我覺得還是有必要專門寫一篇文章來講講這個(gè),順便把環(huán)境問題也一起說了。 我們都知道開發(fā)ios應(yīng)用需要用到蘋果電腦,即使flutter也不例外,flutter編譯構(gòu)建需要Xc

    2024年02月07日
    瀏覽(92)
  • uniapp,小程序上傳圖片,調(diào)用相機(jī),打開相冊(cè)功能

    uniapp上傳頭像上傳圖片,上傳評(píng)價(jià)等功能都可以使用這個(gè)方法 將接口替換和參數(shù)替換其他共用直接使用即可,需要彈窗就使用倆個(gè)參數(shù),直接打開相冊(cè)或者相機(jī)就只填一個(gè)參數(shù)

    2024年02月14日
    瀏覽(23)
  • 【IOS】Xcode 15.2版本下載 iOS_17 Simulator失敗

    Xcode更新15.2自身不帶iOS_17 Simulator模擬器的,然而在使用自帶的get下載安裝會(huì)一直在40進(jìn)度左右出現(xiàn)因?yàn)榫W(wǎng)絡(luò)問題安裝失敗的情況,一般這種情況在斷點(diǎn)處重試安裝也還好,但是每次重試都是需要重新下載,因?yàn)楸旧硐螺d又很慢,又總是在40左右出現(xiàn)此問題,所以只能嘗試自行

    2024年02月20日
    瀏覽(31)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包