You need to enable JavaScript to run this app.
文档中心
文档控制台
注册
veImageX

veImageX

复制全文
下载 pdf
SDK API 参考
类型详情
复制全文
下载 pdf
类型详情

BDAnimatedImageAnimationType
typedef NS_ENUM(
    NSUInteger,
    BDAnimatedImageAnimationType
)

动图播放效果。

枚举值

类型说明
BDAnimatedImageAnimationTypeOrder0顺序播放(123-123-123-123)。
BDAnimatedImageAnimationTypeReciprocating1循环往复播放(123-321-123-321)。

BDImageCodeType
typedef NS_ENUM(
    NSUInteger,
    BDImageCodeType
)

图片格式。

枚举值

类型说明
BDImageCodeTypeUnknown0图片格式未知。
BDImageCodeTypeJPEG1jpeg 格式的图片。
BDImageCodeTypeJPEG20002jpeg2000 格式的图片。
BDImageCodeTypeTIFF3tiff 格式的图片。
BDImageCodeTypeBMP4bmp 格式的图片。
BDImageCodeTypeICO5ico 格式的图片。
BDImageCodeTypeICNS6icns 格式的图片。
BDImageCodeTypeGIF7gif 格式的图片。
BDImageCodeTypePNG8png 格式的图片。
BDImageCodeTypeWebP9webp 格式的图片。
BDImageCodeTypeHeic10heic 格式的图片(ftypheic、ftypheix、ftyphevc、ftyphevx)。
BDImageCodeTypeHeif11heif 格式的图片(mif1、msf1)。
BDImageCodeTypeAVIF12avif 格式的图片。
BDImageCodeTypeVVIC13vvic 格式的图片。
BDImageCodeTypeVVIS14vvis 格式的图片。

BDImageMetaInfo
@interface BDImageMetaInfo : NSObject

图片基础信息。

成员变量

类型名称
NSUIntegerfileSize
NSUIntegermemoryFootprint
NSUIntegerwidth
NSUIntegerheight
NSString*webURL
UIView*requestView
iduserInfo
NSUIntegerframeCount
BOOLpreviousNeedImage

变量说明

fileSize

@property (nonatomic, assign) NSUInteger fileSize;

下载后文件大小,单位:byte。

memoryFootprint

@property (nonatomic, assign) NSUInteger memoryFootprint;

预测解码结束后占用的最大内存,单位:byte。

注意

实际计算公式为:memoryFootprint = width * height * imageCount * 4

width

@property (nonatomic, assign) NSUInteger width;

图片的宽度,单位:像素 ( pixel, px )。

height

@property (nonatomic, assign) NSUInteger height;

图片的高度,单位:像素 ( pixel, px )。

webURL

@property (nonatomic, copy) NSString *webURL;

图片的下载地址。

requestView

@property (nonatomic, weak, nullable) UIView *requestView;

图片对应的视图。

注意

可能是 UIImageView、BDImageView、UIButton 等,根据请求方式的不同可能为空。

userInfo

@property (nonatomic, nullable) id userInfo;

业务在请求图片时,通过 BDWebImageRequestConfig 传入的数据。

注意

该处回调数据不在主线程,请务必注意线程同步。

frameCount

@property (nonatomic, assign) NSUInteger frameCount;

图片的帧数。

previousNeedImage

@property (nonatomic, assign) BOOL previousNeedImage;

标记位,表示采用 BDWebImageManager.shouldDecodeImageBlock 进行拦截前当前图片是否需要解码。

注意

BDImageMetaInfo 是 BDWebImageManager.shouldDecodeImageBlock 的参数,业务可在 block 中自行通过 BDImageMetaInfo 判断是否拦截解码,拦截解码的实际效果和下载图片失败相同,详见 BDWebImageManager

BDWebImageRequestConfig
@interface BDWebImageRequestConfig : NSObject

图片请求的配置。

成员变量

类型名称
NSString*requestKey
CGSizesizeLimit
NSUIntegermemoryLimit
CFTimeIntervaltimeoutInterval
NSString*cacheName
BDBlurHashConfig*blurHashConfig
BDWebImageCryptoKey*cryptoKey
BDBaseTransformer*transformer
iduserInfo
NSString*sceneTag
NSUIntegerrandomSamplingPointCount
NSTimeIntervaltransitionDurationPrecisely
NSDictionary<NSString*,NSString*>*requestHeaders
NSDictionary<NSString*,NSString*>*customParam
NSUIntegerrequestFrom

静态函数

返回名称
voidsetDefaultTransitionDuration:

变量说明

requestKey

@property (nonatomic, nullable, copy) NSString *requestKey;

请求的标识符,用于标识相同的源数据(相等于磁盘缓存中的 sourceKey)。

注意

如果设置该值将会覆盖原有的由 URL 生成 requestKey 的逻辑。

sizeLimit

@property (nonatomic, assign) CGSize sizeLimit;

当前图片期望请求的大小,用于降采样,单位是 point,对应在屏幕上的点,内部会自行计算像素。

memoryLimit

@property (nonatomic, assign) NSUInteger memoryLimit;

降采样图片内存大小,单位是 byte,优先级低于 sizeLimit。

timeoutInterval

@property (nonatomic, assign) CFTimeInterval timeoutInterval;

网络请求的超时时间,传入 0 使用默认超时时间。

cacheName

@property (nonatomic, nullable, copy) NSString *cacheName;

当前期望的缓存实例。

blurHashConfig

@property (nonatomic, copy, nullable) BDBlurHashConfig *blurHashConfig;

BlurHash 功能的配置。

注意

BlurHash 功能的优先级低于 placeholder。

cryptoKey

@property (nonatomic, strong, nullable) BDWebImageCryptoKey *cryptoKey;

加密图片的密钥配置,请求加密图片时必须设置此项,否则无法加载图片。

transformer

@property (nonatomic, nullable, strong) BDBaseTransformer *transformer;

图片加工工具,可以在图片下载后再次对图片进行加工。

userInfo

@property (nonatomic, nullable, strong) id userInfo;

业务方指定传入的信息。

sceneTag

@property (nonatomic, nullable, copy) NSString *sceneTag;

业务方设置的 app 场景标识。

注意

该处优先级高于 sceneTagURLFilterBlock 解析 url 生成的场景标识。

randomSamplingPointCount

@property (nonatomic, assign) NSUInteger randomSamplingPointCount;

随机采样解码后图片的像素个数,用于判断图片是否黑白屏等信息,默认值为 30。

transitionDurationPrecisely

@property (nonatomic, assign) NSTimeInterval transitionDurationPrecisely;

BDImageRequestSetAnimationFade 的动画持续时间。

requestHeaders

@property (nonatomic, copy) NSDictionary<NSString *, NSString *> *requestHeaders;

设置每个图片请求单独的 http headers。

customParam

@property (nonatomic, copy) NSDictionary<NSString *, NSString *> *customParam;

自定义上报数据。每个图片请求的过程中,您可以夹带业务自定义数据,该部分数据会被上报到 image_monitor_v2 性能日志。

注意

json path 访问时 $.customParam。

requestFrom

@property (nonatomic, assign) NSUInteger requestFrom;

图片请求的来源。

  • 0:代表 SDK
  • 1:代表 Hybrid

函数说明

setDefaultTransitionDuration:

+ (void)setDefaultTransitionDuration:(CGFloat)duration;

自定义 transitionDurationPrecisely 属性的默认值,默认值为 0.2 秒。

传入参数

参数名类型说明
durationCGFloat动画的持续时间。

BDImageRequestOptions
typedef NS_OPTIONS(
    NSInteger,
    BDImageRequestOptions
)

图片请求相关设置,如果多个请求设置有交叉,以逻辑或的方式生效。

枚举值

类型说明
BDImageRequestDefaultPriority0网络下载优先级:使用默认优先级。
BDImageRequestLowPriority1 << 0网络下载优先级:使用较低优先级。
BDImageRequestHighPriority1 << 1网络下载优先级:使用较高优先级。
BDImageRequestIgnoreMemoryCache1 << 2缓存:请求图片的时刻不查找内存缓存。
BDImageRequestIgnoreDiskCache1 << 3缓存:请求图片的时刻不查找磁盘缓存。
BDImageRequestNotCacheToMemory1 << 4缓存:下载新图片之后不存储内存缓存。
BDImageRequestNotCacheToDisk1 << 5缓存:下载新图片之后不存储磁盘缓存。
BDImageRequestIgnoreCDNDowngrade1 << 22缓存:忽略图片服务的 CDN 降级策略(命中 CDN 降级策略会导致没有磁盘缓存)。
BDImageRequestIgnoreCacheBDImageRequestIgnoreMemoryCache | BDImageRequestIgnoreDiskCache缓存:请求图片的时刻不查找内存缓存以及磁盘缓存。
BDImageRequestNotCacheToMemeryBDImageRequestNotCacheToMemory缓存:请求图片的时刻不查找内存缓存。
BDImageRequestNeedCachePath1 << 7请求返回结果:强制图片请求必须要返回 NSData 原始数据(默认情况下查找到内存缓存,是不会返回图片原始数据)。
BDImageRequestIgnoreImage1 << 8请求返回结果:不强制解码成 UIImage,返回 NSData。
BDImageNotDecoderForDisplay1 << 14请求返回结果:关闭预渲染。
BDImageScaleDownLargeImages1 << 15请求返回结果:针对大图会进行缩小优化 ( 渐进式加载、降采样开启会导致该选项失效 )。
BDImageRequestCallbackNotInMainThread1 << 17请求返回结果:设置下载完成回调时不从主线程回调(默认从主线程回调)。
BDImageRequestNotVerifyData1 << 20请求返回结果:下载后不校验下载数据的长度和格式(如果启用 decryptBlock 或 cryptoKey 会默认增加此选项)。
BDImageRequestPreloadAllFrames1 << 23请求返回结果:针对动图提前解码并缓存所有帧。
BDImageNotDownsample1 << 19请求返回结果:该次图片请求关闭降采样。
BDImageRequestIgnoreQueue1 << 10控制请求:图片下载忽略队列限制直接开始请求。
BDImageNoRetry1 << 13控制请求:图片下载失败后不进行重试。
BDImageRequestSetDelaySetImage1 << 11控件设置:UIImageView 等控件请求返回 UIImage 后不自动设置 image。
BDImageRequestSetAnimationFade1 << 16控件设置:UIImageView 等控件时添加默认淡入动画效果,可在 BDWebImageRequestConfig 中配置时长。
BDImageKeepPreviousImage1 << 26控件设置:UIImageView 等控件设置图片的时,在加载出图片前保持之前的图片不变。
BDImageStaticImageProgressiveDownload1 << 27渐进式加载:启用静图渐进式加载,支持 jpeg 和 png 格式。
BDImageAnimatedImageProgressiveDownload1 << 18渐进式加载:启用动图渐进式加载,支持 gif、awebp 和 heif 格式。
BDImageHeicProgressDownloadForThumbnail1 << 24渐进式加载:启用 heic 格式静图渐进式加载,优先加载缩略图。
BDImageHeicThumbnailPassToBusinessLayer1 << 25渐进式加载:heic 格式静图缩略图返回业务层(会有两次 completeBlock 回调,缩略图一次原图一次)。
BDImageRequestSmartCorp1 << 21ImageX 服务端下发功能:智能裁剪。需要在图片访问 URL 中需要携带裁剪区域信息的模板配置信息,访问时,header 将返回智能裁剪的区域指定图片裁剪范围。如何在模板配置裁剪,详见图片处理配置
BDImageRequestDefaultOptionsBDImageRequestDefaultPriority默认请求选项。

BDImageCacheConfig
@interface BDImageCacheConfig : NSObject <NSCopying>

缓存配置项,初始化方法会有默认值,注意修改完以后需要重新设置到缓存的 config 属性上方可生效。

成员变量

类型名称
BOOLenableLRU
BOOLclearMemoryOnMemoryWarning
BOOLclearMemoryWhenEnteringBackground
BOOLshouldUseWeakMemoryCache
NSUIntegermemoryCountLimit
NSUIntegermemorySizeLimit
NSUIntegersingleImageMemorySizeLimit
doublelruNewSubListRate
BOOLtrimDiskWhenEnteringBackground
NSUIntegerdiskCountLimit
NSUIntegerdiskSizeLimit
NSUIntegerdiskAgeLimit
BOOLshouldDisableiCloud
BOOLusingNewImageExtendCache
BDImageDiskDateTypediskDateType

变量说明

enableLRU

@property(nonatomic, assign) BOOL enableLRU;

是否开启 LRU ( Least Recently Used ) 缓存优先清理最不常使用的文件。

  • YES:是
  • NO:否

注意

该属性必须要在创建缓存对象的时刻在 init 方法里中传 Config 类才会生效(且优先级最高),对于主缓存 [BDImageCache sharedImageCache] 来说只能通过 BDImageCache 中的 enableMemoryLruOptimization 属性设置。

clearMemoryOnMemoryWarning

@property (nonatomic, assign) BOOL clearMemoryOnMemoryWarning;

在低内存时,是否清除所有内存缓存。

  • YES:(默认)是
  • NO:否

clearMemoryWhenEnteringBackground

@property (nonatomic, assign) BOOL clearMemoryWhenEnteringBackground;

在进入后台时,是否清除所有内存缓存。

  • YES:(默认)是
  • NO:否

shouldUseWeakMemoryCache

@property (assign, nonatomic) BOOL shouldUseWeakMemoryCache;

是否使用 weak cache 优化内存缓存。

  • YES:是
  • NO:否

memoryCountLimit

@property (nonatomic, assign) NSUInteger memoryCountLimit;

设置最大内存缓存对象数量限制,默认无限制。

memorySizeLimit

@property (nonatomic, assign) NSUInteger memorySizeLimit;

设置最大内存缓存大小,单位为 byte,默认 256 MB。

singleImageMemorySizeLimit

@property (nonatomic, assign) NSUInteger singleImageMemorySizeLimit;

设置单张图片允许存入的最大内存缓存大小限制,即超过该大小的图片不会储存到内存缓存。单位为 byte。

注意

  • 对于动图,只算第一帧。
  • 默认无限制。

lruNewSubListRate

@property (nonatomic, assign) double lruNewSubListRate;

设置 LRU 优化新、老缓存分区比例,该属性指定新分区的占比。

注意

默认新老比例为 5:3,即新分区占整体体积的 5/8。

trimDiskWhenEnteringBackground

@property (nonatomic, assign) BOOL trimDiskWhenEnteringBackground;

在进入后台时,是否清除超限或者过期的磁盘缓存。

  • YES:(默认)是
  • NO:否

diskCountLimit

@property (nonatomic, assign) NSUInteger diskCountLimit;

设置最大磁盘缓存对象数量限制,默认无限制。

diskSizeLimit

@property (nonatomic, assign) NSUInteger diskSizeLimit;

设置最大磁盘缓存大小,单位为 byte,默认 256MB。

diskAgeLimit

@property (nonatomic, assign) NSUInteger diskAgeLimit;

设置最大磁盘缓存过期时间,单位为秒,默认为 7 天。

shouldDisableiCloud

@property (assign, nonatomic) BOOL shouldDisableiCloud;

设置磁盘缓存是否不支持从 iCloud 同步。

  • YES:(默认)是
  • NO:否

usingNewImageExtendCache

@property (assign, nonatomic) BOOL usingNewImageExtendCache;

是否使用新的数据库存储图片的相关附加信息。

  • YES:是
  • NO:(默认)否

diskDateType

@property (nonatomic, assign) BDImageDiskDateType diskDateType;

磁盘缓存使用的日期类型,详见 BDImageDiskDateType

BDBlurHashConfig
@interface BDBlurHashConfig : NSObject
<NSCopying>

模糊图占位配置。

成员变量

类型名称
<NSCopying>NSString*blurHash
CGSizetargetSize
intpunch

变量说明

blurHash

@property (nonatomic, copy, nullable) NSString *blurHash;

用于解码 BlurHash 的字符串。参考获取图片 BlurHash 码文档,了解如何获取指定图片的 BlurHash 码(模糊图)。

注意

为 nil 时则忽略解码本地 BlurHash,且优先级高于服务端下发的 BlurHash 字符串。

targetSize

@property (nonatomic, assign) CGSize targetSize;

解码后图片的分辨率,单位为 px,取值越大,解码越慢。请根据业务需要,适当调整。

punch

@property (nonatomic, assign) int punch;

对比度,取值范围大于 0,默认值为 1,传入小于等于 0 的值会兜底为 1。

BDImageDiskDateType
typedef NS_ENUM(
    NSUInteger,
    BDImageDiskDateType
)

磁盘缓存使用的日期类型。

枚举值

类型说明
BDImageDiskDateTypeModification0最后修改文件内容的时间。
BDImageDiskDateTypeAccess1最后访问文件的时间。
BDImageDiskDateTypeCreation2创建文件的时间。
BDImageDiskDateTypeAttributeModification3最后修改文件属性的时间。

BDLivePhotoResultFrom
typedef NS_ENUM(
    NSInteger,
    BDLivePhotoResultFrom
)

标记 LivePhoto 的来源。

枚举值

类型说明
BDLivePhotoResultFromNone-1不清楚来源。
BDLivePhotoResultFromDownloading0来自网络下载。
BDLivePhotoResultFromMemoryCache1来自内存缓存。
BDLivePhotoResultFromDiskCache2来自磁盘缓存。

BDImageHeicThumbLocationType
typedef NS_ENUM(
    NSInteger,
    BDImageHeicThumbLocationType
)

在当前 HEIC 图片查找缩略图的结果。

枚举值

类型说明
BDImageHeicThumbLocationNotFound-1当前数据不包含缩略图数据。
BDImageHeicThumbLocationFounded0当前数据包含缩略图数据。
BDImageHeicThumbLocationNotDetermined1当前数据尚不确定是否包含缩略图数据。

BDImageDecoderSizeType
typedef NS_ENUM(
    NSUInteger,
    BDImageDecoderSizeType
)

图片尺寸操作类型。

枚举值

类型说明
BDImageDecoderOriginSize0原图尺寸。
BDImageDecoderCroppedSize1裁剪尺寸。
BDImageDecoderSizeLimitDownsampledSize2尺寸限制降采样尺寸。
BDImageDecoderMemoryLimitedDownsampledSize3内存限制降采样尺寸。
BDImageDecoderScaleDownSize4缩放尺寸。
BDImageDecoderCroppedandScaleDownSize5裁剪并缩放尺寸。

BDWebImageResultFrom
typedef NS_ENUM(
    NSInteger,
    BDWebImageResultFrom
)

标记图片的来源。

枚举值

类型说明
BDWebImageResultFromNone-1不清楚来源。
BDWebImageResultFromDownloading0图片来自网络下载。
BDWebImageResultFromMemoryCache1图片来自内存缓存。
BDWebImageResultFromDiskCache2图片来自磁盘缓存。

BDImageCacheType
typedef NS_OPTIONS(
    NSUInteger,
    BDImageCacheType
)

图片缓存类型。

枚举值

类型说明
BDImageCacheTypeNone0未找到图片的缓存类型,该参数只用于查询图片缓存后没找到缓存的返回结果。
BDImageCacheTypeMemory1 << 0内存缓存类型。
BDImageCacheTypeDisk1 << 1磁盘缓存类型。
BDImageCacheTypeAllBDImageCacheTypeMemory | BDImageCacheTypeDisk全部缓存类型(内存和磁盘)。

BDProgressiveAnimatedImageDelayType
typedef NS_ENUM(
    NSUInteger,
    BDProgressiveAnimatedImageDelayType
)

动图播放时的卡顿原因。

枚举值

类型说明
BDAnimatedImageDelayTypeDownload0网络下载过慢,后续帧未下载完成。
BDAnimatedImageDelayTypeDecode1解码速度太慢,后续帧未解码完成。

BDLivePhotoRequestType
typedef NS_ENUM(
    NSInteger,
    BDLivePhotoRequestType
)

LivePhoto 的请求类型。

枚举值

类型说明
BDLivePhotoRequestTypeImage0LivePhoto 的图片请求。
BDLivePhotoRequestTypeVideo1LivePhoto 的视频请求。

Public API

函数

返回名称
voidBDImageCacheCallback

函数说明

BDImageCacheCallback

void BDImageCacheCallback(UIImage * _Nullable image,
NSString * _Nullable cachePath);

缓存回调的 block 定义。

传入参数

参数名类型说明
imageUIImage*缓存图片。
cachePathNSString*缓存路径。仅当为磁盘缓存时,有对应路径。

UIImage(BDWebImage)
@interface UIImage (BDWebImage)

适配 UIImage 的 ImageX category,提供图片状态。

成员变量

类型名称
NSURL*bd_webURL
BDImageRequestKey*bd_requestKey
BOOLbd_loading
BOOLbd_isDidScaleDown
BOOLbd_isThumbnail
BOOLbd_isFirstTimeImage

变量说明

bd_webURL

@property (nonatomic, strong, nullable)NSURL *bd_webURL;

图片原始对应的下载地址。

bd_requestKey

@property (nonatomic, strong, nullable)BDImageRequestKey *bd_requestKey;

图片加载后其请求对应的键值。

bd_loading

@property (nonatomic, assign)BOOL bd_loading;

图片是否正在下载。

  • YES:是
  • NO:否

bd_isDidScaleDown

@property (nonatomic, assign)BOOL bd_isDidScaleDown;

图片是否被缩小。

  • YES:是
  • NO:否

bd_isThumbnail

@property (nonatomic, assign)BOOL bd_isThumbnail;

图片是否为缩略图。

  • YES:是
  • NO:否

bd_isFirstTimeImage

@property (nonatomic, assign)BOOL bd_isFirstTimeImage;

当前图片是否是第一次回调得到的图片。

  • YES:是
  • NO:否

注意

在渐进式加载的时候,由于下载一部分就会解码并回调,因此除第一次回调图片为 YES,后续回调时该属性均为 NO

BDProgressiveAnimatedImageDelayState
typedef NS_ENUM(
    NSUInteger,
    BDProgressiveAnimatedImageDelayState
)

数据延时的状态。

枚举值

类型说明
BDAnimatedImageDelayStateGetDataDuringPlay0下一张图片数据在上一帧播放结束前已下载完成。
BDAnimatedImageDelayStateGetDataAfterPlay1下一张图片数据在上一帧播放结束前未下载完成。

BDAnimateImageFrame
@interface BDAnimateImageFrame : NSObject

适用于动图,动图的某一帧图片。

成员变量

类型名称
UIImage*image
NSUIntegerindex
CFTimeIntervaldelay
CFTimeIntervalnextFrameTime

变量说明

image

@property (nonatomic, retain, nullable) UIImage *image;

动图的某一帧对应的图片。

index

@property (nonatomic, assign) NSUInteger index;

当前帧在动图中的索引。

delay

@property (nonatomic, assign) CFTimeInterval delay;

帧与帧之间的间隔时间,单位为秒。

nextFrameTime

@property (nonatomic, assign) CFTimeInterval nextFrameTime;

预计播放下一帧的时间,单位为秒。

BDWebImageShouldDecodeImageFromType
typedef NS_OPTIONS(
    NSUInteger,
    BDWebImageShouldDecodeImageFromType
)

拦截解码的图片下载路径。

枚举值

类型说明
BDWebImageShouldDecodeImageFromDownloading1 << 0图片来自网络下载时拦截判断是否解码,此为默认值。
BDWebImageShouldDecodeImageFromDisk1 << 1图片来自磁盘缓存时拦截判断是否解码。
BDWebImageShouldDecodeImageFromAllBDWebImageShouldDecodeImageFromDownloading | BDWebImageShouldDecodeImageFromDisk所有需要解码的图片均拦截判断是否解码。
最近更新时间:2024.05.23 15:29:15
这个页面对您有帮助吗?
有用
有用
无用
无用