2025-10-09 16:48:46 +08:00

211 lines
5.1 KiB
Objective-C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// NIMImageObject.h
// NIMLib
//
// Created by Netease.
// Copyright (c) 2015年 Netease. All rights reserved.
//
#import "NIMMessageObjectProtocol.h"
#import "NIMPlatform.h"
NS_ASSUME_NONNULL_BEGIN
/**
* 图片格式
*/
typedef NS_ENUM(NSInteger, NIMImageFormat)
{
/**
* Jpeg格式
*/
NIMImageFormatJPEG,
/**
* Png格式
*/
NIMImageFormatPNG,
};
/**
* 图片选项
*/
@interface NIMImageOption : NSObject
/**
* 压缩参数默认为 0.5,可传入0.0-1.0的值,如果传入非法参数,则按照 0.5 进行压缩
*/
@property (nonatomic,assign) float compressQuality;
/**
* 图片压缩格式,默认为JPEG
*/
@property (nonatomic,assign) NIMImageFormat format;
@end
/**
* 图片实例对象
*/
@interface NIMImageObject : NSObject<NIMMessageObject>
/**
* 图片实例对象初始化方法
*
* @param image 要发送的图片
*
* @return 图片实例对象
*/
- (instancetype)initWithImage:(UIImage*)image;
/**
* 图片实例对象初始化方法
*
* @param filepath 要发送的图片路径
*
* @discussion 使用此方法上传是不做压缩转换的原图上传。iOS 11 苹果采用了新的图片格式 HEIC ,如果采用原图会导致其他设备的兼容问题,请开发者在上层做好格式的兼容转换。
*
* @return 图片实例对象
*/
- (instancetype)initWithFilepath:(NSString *)filepath;
/**
* 图片实例对象初始化方法
*
* @param data 图片数据
* @param extension 推荐使用的图片数据后缀名
*
* @return 图片实例对象
*/
- (instancetype)initWithData:(NSData *)data
extension:(NSString *)extension;
/**
* 图片实例对象初始化方法
*
* @param image 要发送的图片
* @param scene 场景类别
*
* @return 图片实例对象
*/
- (instancetype)initWithImage:(UIImage*)image scene:(NSString *)scene;
/**
* 图片实例对象初始化方法
*
* @param filepath 要发送的图片路径
* @param scene 场景类别
*
* @discussion 使用此方法上传是不做压缩转换的原图上传。iOS 11 苹果采用了新的图片格式 HEIC ,如果采用原图会导致其他设备的兼容问题,请开发者在上层做好格式的兼容转换。
*
* @return 图片实例对象
*/
- (instancetype)initWithFilepath:(NSString *)filepath scene:(NSString *)scene;
/**
* 图片实例对象初始化方法, 可用于发送Webp图片
*
* @param filepath 要发送的图片路径
* @param scene 场景类别
* @param size 图片宽高,当发送文件为Webp时须需要传入该图片尺寸大小
*
* @discussion 使用此方法上传是不做压缩转换的原图上传。iOS 11 苹果采用了新的图片格式 HEIC ,如果采用原图会导致其他设备的兼容问题,请开发者在上层做好格式的兼容转换。
*
* @return 图片实例对象
*/
- (instancetype)initWithFilepath:(NSString *)filepath
scene:(NSString *)scene
size:(CGSize)size;
/**
* 图片实例对象初始化方法
*
* @param data 图片数据
* @param extension 推荐使用的图片数据后缀名
* @param scene 场景类别
*
* @return 图片实例对象
*/
- (instancetype)initWithData:(NSData *)data
extension:(NSString *)extension
scene:(NSString *)scene;
/**
* 图片实例对象初始化方法, 可用于发送Webp图片
*
* @param data 图片数据
* @param extension 推荐使用的图片数据后缀名
* @param scene 场景类别
* @param size 图片宽高,当发送文件为Webp时须需要传入该图片尺寸大小
*
* @return 图片实例对象
*/
- (instancetype)initWithData:(NSData *)data
extension:(NSString *)extension
scene:(NSString *)scene
size:(CGSize)size;
/**
* 设置上传的url用于发送已经上传好的资源
*
* @param urlString 图片的地址
*
*/
- (void)setUploadURL:(NSString *)urlString;
/**
* 文件展示名
*/
@property (nullable, nonatomic, copy) NSString *displayName;
/**
* 图片本地路径
* @discussion 目前 SDK 没有提供下载大图的方法,但推荐使用这个地址作为图片下载地址,APP 可以使用自己的下载类或者 SDWebImage 做图片的下载和管理
*/
@property (nullable, nonatomic, copy, readonly) NSString *path;
/**
* 缩略图本地路径
*/
@property (nullable, nonatomic, copy, readonly) NSString *thumbPath;
/**
* 图片远程路径
*/
@property (nullable, nonatomic, copy, readonly) NSString *url;
/**
* 缩略图远程路径
* @discussion 仅适用于使用云信上传服务进行上传的资源,否则无效。
*/
@property (nullable, nonatomic, copy, readonly) NSString *thumbUrl;
/**
* 图片尺寸
*/
@property (nonatomic, assign, readonly) CGSize size;
/**
* 图片选项
* @discussion 仅在发送时且通过 initWithImage: 方式初始化才有效
*/
@property (nullable, nonatomic ,strong) NIMImageOption *option;
/**
* 文件大小
*/
@property (nonatomic, assign, readonly) long long fileLength;
/**
* 图片MD5
*/
@property (nullable,nonatomic, copy, readonly) NSString *md5;
@end
NS_ASSUME_NONNULL_END