iOS开发中,对内存的管理是非常重要的一项,现在就来说说如何使用iOS原生库ImageIO缩放图片,合理利用内存。
需要导入的库是
#import <ImageIO/ImageIO.h>
具体的实现如下:
//此方法内存占用率较低
- (UIImage *)thumbnailForAsset:(ALAsset *)asset maxPixelSize:(NSUInteger)size {
NSParameterAssert(asset != nil);
NSParameterAssert(size > 0);
ALAssetRepresentation *rep = [asset defaultRepresentation];
CGDataProviderDirectCallbacks callbacks = {
.version = 0,
.getBytePointer = NULL,
.releaseBytePointer = NULL,
.getBytesAtPosition = getAssetBytesCallback,
.releaseInfo = releaseAssetCallback,
};
CGDataProviderRef provider = CGDataProviderCreateDirect(
(void *)CFBridgingRetain(rep), [rep size], &callbacks);