iOS PHImageRequestOpciones

Un conjunto de opciones que afectan a las imágenes estáticas de los activos obtenidos a través del administrador de imágenes.

contenido

1. Programe una solicitud de imagen

@property (no atómico, asignar, getter=isSynchronous) BOOL síncrono;

Ya sea para procesar una solicitud de imagen sincrónicamente. El valor predeterminado es NO.

En caso afirmativo NO, - (PHImageRequestID)requestImageForAsset:(PHAsset *)asset targetSize:(CGSize)targetSize contentMode:(PHImageContentMode)contentMode options:(PHImageRequestOptions *)options resultHandler:(void (^)(UIImage *result, NSDictionary *info))resultHandler;el método devuelve el valor devuelto inmediatamente. Dependiendo de deliveryModela propiedad, Fotos puede llamar a su devolución de llamada antes de que este método regrese resultHandler, o en un momento posterior, o ambos.

En caso afirmativo YES, - (PHImageRequestID)requestImageForAsset:(PHAsset *)asset targetSize:(CGSize)targetSize contentMode:(PHImageContentMode)contentMode options:(PHImageRequestOptions *)options resultHandler:(void (^)(UIImage *result, NSDictionary *info))resultHandler;el método bloqueará el hilo de llamada hasta que los datos de la imagen estén listos o se produzca un error. Las fotos solo llamarán tuyas resultHandleruna vez.

Tenga en cuenta que
solo las solicitudes sincrónicas se realizan en un subproceso en segundo plano.

2. Dadas las opciones de solicitud de imágenes.

@property (no atómica, asignar) PHImageRequestOptionsVersion versión;

La versión de la imagen solicitada.

Utilice este atributo para solicitar una versión sin editar de una imagen o para solicitar datos sin procesar de alta calidad (por ejemplo, un archivo RAW).

PHImageRequestOpcionesVersión

typedef NS_ENUM(NSInteger, PHImageRequestOptionsVersion) {
    
    
    PHImageRequestOptionsVersionCurrent = 0, // 图片的最新版本(包括所有编辑版本)
    PHImageRequestOptionsVersionUnadjusted, // 原版,无任何调整编辑
    PHImageRequestOptionsVersionOriginal // 原始的高保真的版本
} PHOTOS_ENUM_AVAILABLE_IOS_TVOS(8_0, 10_0);

@propiedad (no atómica, asignar) PHImageRequestOptionsDeliveryMode deliveryMode;

La calidad de imagen solicitada y la prioridad de entrega.

El uso de esta propiedad le indicará a Fotos que proporcione imágenes rápidamente (posiblemente sacrificando la calidad de la imagen), proporcione imágenes de alta calidad (posiblemente sacrificando la velocidad) o elija automáticamente.

PHImageRequestOptionsDeliveryMode

typedef NS_ENUM(NSInteger, PHImageRequestOptionsDeliveryMode) {
    
    
    PHImageRequestOptionsDeliveryModeOpportunistic = 0, // 为了平衡图像质量和响应速度,Photos会提供一个或多个结果
    PHImageRequestOptionsDeliveryModeHighQualityFormat = 1, // 只提供最高质量的图像,无论它需要多少时间加载
    PHImageRequestOptionsDeliveryModeFastFormat = 2 // 最快速的得到一个图像结果,可能会牺牲图像质量。
} PHOTOS_ENUM_AVAILABLE_IOS_TVOS(8_0, 10_0);

@propiedad (no atómica, asignar) PHImageRequestOptionsResizeMode resizeMode;

Cómo cambiar el tamaño de la imagen solicitada.

Utilice esta propiedad para elegir cómo ajustar la imagen al tamaño de destino cuando se soliciten datos de imagen.

PHImageRequestOptionsResizeMode

typedef NS_ENUM(NSInteger, PHImageRequestOptionsResizeMode) {
    
    
    PHImageRequestOptionsResizeModeNone = 0, // 不做任何调整
    PHImageRequestOptionsResizeModeFast, // 最快速的调整图像大小,有可能比给定大小略大
    PHImageRequestOptionsResizeModeExact, // 保证与给定大小相等。如果使用normalizedCropRect属性,则必须指定为该模式。
} PHOTOS_ENUM_AVAILABLE_IOS_TVOS(8_0, 10_0);

@propiedad (no atómica, asignar) CGRect normalizedCropRect;

Ya sea para recortar la imagen original.

Si desea recortar la imagen, especifique el rectángulo para recortar en el espacio de coordenadas. En el sistema de coordenadas, {0.0,0.0}el punto está en la esquina superior izquierda de la imagen y {1.0,1.0}el punto está en la esquina inferior derecha de la imagen.

El valor predeterminado de esta propiedad es CGRectZero, lo que significa que no hay recorte.

Si especifica el rectángulo de recorte, debe resizeModeestablecer la propiedad en PHImageRequestOptionsResizeModeExact.

3. Obtenga imágenes de iCloud

@property (no atómica, asignar, getter=isNetworkAccessAllowed) BOOL networkAccessAllowed;

Si Fotos puede descargar imágenes de iCloud. El valor predeterminado es NO.

Si se establece en YES, y la imagen solicitada no se almacena localmente en el dispositivo, Fotos descargará la imagen de iCloud. Para obtener el progreso de la descarga, use progressHandlerla propiedad Fotos llamará periódicamente a esta propiedad de devolución de llamada para devolver el progreso de la descarga. Si se establece en NOy la imagen solicitada no se almacena en el dispositivo local, el valor correspondiente infoen el diccionario devuelto por la devolución de llamada identificará la imagen como no disponible.PHImageResultIsInCloudKey

@property (no atómica, copia, anulable) PHAssetImageProgressHandler progresoHandler;

A medida que se descargan las imágenes, se devuelve periódicamente el progreso de la descarga.

Si la imagen solicitada no está almacenada en el dispositivo local y networkAccessAllowedla configuración permite descargar imágenes de iCloud, Fotos llamará a esta propiedad periódicamente para devolverle el progreso de la descarga y permitirle cancelar la descarga.

Supongo que te gusta

Origin blog.csdn.net/chennai1101/article/details/129984055
Recomendado
Clasificación