UIImagePickerController.h SDK 翻译

图片采集

//  UIImagePickerController.h

在命名控制器时不需要view了吗?

//  UIKit

//

//  Copyright (c) 2008-2015 Apple Inc. All rights reserved.

//


#import <Foundation/Foundation.h>

#import <UIKit/UINavigationController.h>

#import <UIKit/UIKitDefines.h>


NS_ASSUME_NONNULL_BEGIN


@class UIImage;

//委托代理类前声明

@protocol UIImagePickerControllerDelegate;


typedef NS_ENUM(NSInteger, UIImagePickerControllerSourceType) {

    UIImagePickerControllerSourceTypePhotoLibrary,

    UIImagePickerControllerSourceTypeCamera,

    UIImagePickerControllerSourceTypeSavedPhotosAlbum

} __TVOS_PROHIBITED;


typedef NS_ENUM(NSInteger, UIImagePickerControllerQualityType) {

    UIImagePickerControllerQualityTypeHigh = 0,       // highest quality

    UIImagePickerControllerQualityTypeMedium = 1,     // medium quality, suitable for transmission via Wi-Fi 

    UIImagePickerControllerQualityTypeLow = 2,         // lowest quality, suitable for tranmission via cellular network

    UIImagePickerControllerQualityType640x480 NS_ENUM_AVAILABLE_IOS(4_0) =3,    // VGA quality

    UIImagePickerControllerQualityTypeIFrame1280x720NS_ENUM_AVAILABLE_IOS(5_0) =4,

    UIImagePickerControllerQualityTypeIFrame960x540NS_ENUM_AVAILABLE_IOS(5_0) =5,

} __TVOS_PROHIBITED;


typedef NS_ENUM(NSInteger, UIImagePickerControllerCameraCaptureMode) {

    UIImagePickerControllerCameraCaptureModePhoto,

    UIImagePickerControllerCameraCaptureModeVideo

} __TVOS_PROHIBITED;


typedef NS_ENUM(NSInteger, UIImagePickerControllerCameraDevice) {

    UIImagePickerControllerCameraDeviceRear,

    UIImagePickerControllerCameraDeviceFront

} __TVOS_PROHIBITED;


typedef NS_ENUM(NSInteger, UIImagePickerControllerCameraFlashMode) {

    UIImagePickerControllerCameraFlashModeOff  = -1,

    UIImagePickerControllerCameraFlashModeAuto = 0,

    UIImagePickerControllerCameraFlashModeOn   = 1

} __TVOS_PROHIBITED;


// info dictionary keys

UIKIT_EXTERN NSString *const UIImagePickerControllerMediaType__TVOS_PROHIBITED;      // an NSString (UTI, i.e. kUTTypeImage)

UIKIT_EXTERN NSString *const UIImagePickerControllerOriginalImage__TVOS_PROHIBITED// a UIImage

UIKIT_EXTERN NSString *const UIImagePickerControllerEditedImage__TVOS_PROHIBITED;    // a UIImage

UIKIT_EXTERN NSString *const UIImagePickerControllerCropRect__TVOS_PROHIBITED;       // an NSValue (CGRect)

UIKIT_EXTERN NSString *const UIImagePickerControllerMediaURL__TVOS_PROHIBITED;       // an NSURL

UIKIT_EXTERN NSString *const UIImagePickerControllerReferenceURL       NS_AVAILABLE_IOS(4_1)__TVOS_PROHIBITED// an NSURL that references an asset in the AssetsLibrary framework

UIKIT_EXTERN NSString *const UIImagePickerControllerMediaMetadata      NS_AVAILABLE_IOS(4_1)__TVOS_PROHIBITED// an NSDictionary containing metadata from a captured photo

UIKIT_EXTERN NSString *const UIImagePickerControllerLivePhotoNS_AVAILABLE_IOS(9_1)__TVOS_PROHIBITED// a PHLivePhoto

要这么长的 枚举名、全局变量名、

NS_CLASS_AVAILABLE_IOS(2_0)__TVOS_PROHIBITED @interface UIImagePickerController :UINavigationController <NSCoding>

某源是否可用

+ (BOOL)isSourceTypeAvailable:(UIImagePickerControllerSourceType)sourceType;                // returns YES if source is available (i.e. camera present)

某源有什么媒体功能

+ (nullableNSArray<NSString *> *)availableMediaTypesForSourceType:(UIImagePickerControllerSourceType)sourceType;// returns array of available media types (i.e. kUTTypeImage)


+ (BOOL)isCameraDeviceAvailable:(UIImagePickerControllerCameraDevice)cameraDevice                  NS_AVAILABLE_IOS(4_0);// returns YES if camera device is available 

+ (BOOL)isFlashAvailableForCameraDevice:(UIImagePickerControllerCameraDevice)cameraDevice          NS_AVAILABLE_IOS(4_0);// returns YES if camera device supports flash and torch.

前后摄像头捕捉类型

+ (nullableNSArray<NSNumber *> *)availableCaptureModesForCameraDevice:(UIImagePickerControllerCameraDevice)cameraDeviceNS_AVAILABLE_IOS(4_0);// returns array of NSNumbers (UIImagePickerControllerCameraCaptureMode)

多重代理

@property(nullable,nonatomic,weak)     id <UINavigationControllerDelegate,UIImagePickerControllerDelegate> delegate;


@property(nonatomic)          UIImagePickerControllerSourceType     sourceType;                                                       // default value is UIImagePickerControllerSourceTypePhotoLibrary.

@property(nonatomic,copy)     NSArray<NSString *>                   *mediaTypes;

    // default value is an array containing kUTTypeImage.

@property(nonatomic)          BOOL                                  allowsEditingNS_AVAILABLE_IOS(3_1);    // replacement for -allowsImageEditing; default value is NO.

@property(nonatomic)          BOOL                                  allowsImageEditingNS_DEPRECATED_IOS(2_0,3_1);


// video properties apply only if mediaTypes includes kUTTypeMovie

@property(nonatomic)          NSTimeInterval                        videoMaximumDurationNS_AVAILABLE_IOS(3_1);// default value is 10 minutes.

@property(nonatomic)          UIImagePickerControllerQualityType    videoQualityNS_AVAILABLE_IOS(3_1);        // default value is UIImagePickerControllerQualityTypeMedium. If the cameraDevice does not support the videoQuality, it will use the default value.


// camera additions available only if sourceType is UIImagePickerControllerSourceTypeCamera.

是否显示照相机控制按钮   多用在二维码扫面上

@property(nonatomic)          BOOL                                  showsCameraControlsNS_AVAILABLE_IOS(3_1);  // set to NO to hide all standard camera UI. default is YES

给照相机画面添加遮盖view    多用在二维码扫面上

@property(nullable,nonatomic,strong)__kindof UIView                *cameraOverlayView NS_AVAILABLE_IOS(3_1);  // set a view to overlay the preview view.

设置transform

@property(nonatomic)          CGAffineTransform                     cameraViewTransformNS_AVAILABLE_IOS(3_1);  // set the transform of the preview view.

动态获取图片吧   

- (void)takePictureNS_AVAILABLE_IOS(3_1);                                                   

// programatically initiates still image capture. ignored if image capture is in-flight.

// clients can initiate additional captures after receiving -imagePickerController:didFinishPickingMediaWithInfo: delegate callback


- (BOOL)startVideoCaptureNS_AVAILABLE_IOS(4_0);

- (void)stopVideoCapture NS_AVAILABLE_IOS(4_0);


@property(nonatomic)UIImagePickerControllerCameraCaptureMode cameraCaptureModeNS_AVAILABLE_IOS(4_0);// default is UIImagePickerControllerCameraCaptureModePhoto

@property(nonatomic)UIImagePickerControllerCameraDevice      cameraDevice     NS_AVAILABLE_IOS(4_0);// default is UIImagePickerControllerCameraDeviceRear

手机闪光灯

@property(nonatomic)UIImagePickerControllerCameraFlashMode   cameraFlashMode  NS_AVAILABLE_IOS(4_0);// default is UIImagePickerControllerCameraFlashModeAuto. 

// cameraFlashMode controls the still-image flash when cameraCaptureMode is Photo. cameraFlashMode controls the video torch when cameraCaptureMode is Video.


@end


__TVOS_PROHIBITED @protocol UIImagePickerControllerDelegate<NSObject>

@optional

// The picker does not dismiss itself; the client dismisses it in these callbacks.

// The delegate will receive one or the other, but not both, depending whether the user

// confirms or cancels.

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(nullable NSDictionary<NSString *,id> *)editingInfoNS_DEPRECATED_IOS(2_0,3_0);

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

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker;


@end


图片保存到相册

// Adds a photo to the saved photos album.  The optional completionSelector should have the form:

//  - (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo;

UIKIT_EXTERN void UIImageWriteToSavedPhotosAlbum(UIImage *image,__nullable id completionTarget,__nullable SEL completionSelector,void * __nullable contextInfo)__TVOS_PROHIBITED;


// Is a specific video eligible to be saved to the saved photos album? 

UIKIT_EXTERN BOOL UIVideoAtPathIsCompatibleWithSavedPhotosAlbum(NSString *videoPath)NS_AVAILABLE_IOS(3_1)__TVOS_PROHIBITED;


// Adds a video to the saved photos album. The optional completionSelector should have the form:

//  - (void)video:(NSString *)videoPath didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo;

UIKIT_EXTERN void UISaveVideoAtPathToSavedPhotosAlbum(NSString *videoPath,__nullable id completionTarget,__nullable SEL completionSelector,void * __nullable contextInfo)NS_AVAILABLE_IOS(3_1)__TVOS_PROHIBITED;


NS_ASSUME_NONNULL_END

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
struct VideoPicker: UIViewControllerRepresentable { @Environment(.presentationMode) private var presentationMode let sourceType: UIImagePickerController.SourceType // let onImagePicked: (UIImage) -> Void let onURLPicked: (URL) -> Void final class Coordinator: NSObject, UINavigationControllerDelegate, UIImagePickerControllerDelegate { @Binding private var presentationMode: PresentationMode private let sourceType: UIImagePickerController.SourceType private let onURLPicked: (URL) -> Void init(presentationMode: Binding<PresentationMode>, sourceType: UIImagePickerController.SourceType, onURLPicked: @escaping (URL) -> Void) { presentationMode = presentationMode self.sourceType = sourceType self.onURLPicked = onURLPicked } func imagePickerController( picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) { // let uiImage = info[UIImagePickerController.InfoKey.originalImage] as! UIImage // onImagePicked(uiImage) if let url = info[.mediaURL] as? URL{ onURLPicked(url) } presentationMode.dismiss() } func imagePickerControllerDidCancel(_ picker: UIImagePickerController) { presentationMode.dismiss() } } func makeCoordinator() -> Coordinator { return Coordinator(presentationMode: presentationMode, sourceType: sourceType, onURLPicked: onURLPicked) } func makeUIViewController(context: UIViewControllerRepresentableContext<VideoPicker>) -> UIImagePickerController { let picker = UIImagePickerController() picker.sourceType = sourceType picker.delegate = context.coordinator picker.mediaTypes = ["public.movie"] return picker } func updateUIViewController(_ uiViewController: UIImagePickerController, context: UIViewControllerRepresentableContext<VideoPicker>) { } }这段代码获取的url中绝对路径不准确
05-24
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值