iOS 使用Image I/O 实现超大图片降采样

一个图片解码成未压缩的位图的时候,占用的内存和图片的文件大小没有关系,和图片的尺寸大小有关系,尺寸越大,所需要的像素点越多,所以超大图片,我们需要进行优化处理

这里直接上降采样代码

给UIImage 添加一个分类,在分类中添加一个方法 ,该size就是

UIImageView的大小

复制代码
- (UIImage *)resizeCG:(CGSize)size
{
    CGFloat maxPixelSize = MAX(size.width, size.height);
    CGImageSourceRef sourceRef = CGImageSourceCreateWithData((__bridge CFDataRef)UIImageJPEGRepresentation(self, 0.9), nil);
    NSDictionary *options = @{(__bridge id)kCGImageSourceCreateThumbnailFromImageAlways:(__bridge id)kCFBooleanTrue,
                              (__bridge id)kCGImageSourceThumbnailMaxPixelSize:[NSNumber numberWithFloat:maxPixelSize]
                              };
    CGImageRef imageRef = CGImageSourceCreateImageAtIndex(sourceRef, 0, (__bridge CFDictionaryRef)options);
    UIImage *newImage = [UIImage imageWithCGImage:imageRef scale:2 orientation:self.imageOrientation];
    CGImageRelease(imageRef);
    CFRelease(sourceRef);
    return newImage;
}
相关推荐
I烟雨云渊T1 分钟前
iOS原生与Flutter的交互编程
flutter·ios·交互
马拉萨的春天44 分钟前
iOS的动态库和静态库的差异区别以及静态库的好处
macos·ios·cocoa
肖老师xy1 小时前
苹果(IOS)制作开发和发布证书
ios
马拉萨的春天2 小时前
探索Objective-C中的对象复制:深入理解copy和mutableCopy
开发语言·ios·objective-c
00后程序员张2 小时前
Fiddler使用教程,全面掌握Fiddler抓包工具的配置方法、代理设置与调试技巧(HTTPHTTPS全解析)
前端·测试工具·ios·小程序·fiddler·uni-app·webview
2501_916008892 小时前
HTTPS 下的 DDoS 防护与抓包分析实战,从检测到快速缓解的工程化打法
网络协议·ios·小程序·https·uni-app·iphone·ddos
2501_915918412 小时前
App 使用 HTTPS 的工程化实战,从接入到真机排查的一线指南
android·ios·小程序·https·uni-app·iphone·webview
hookserver3 小时前
企业微信ipad协议接口优势
http·ios·微信·企业微信·ipad·企微
Digitally6 小时前
如何从iPhone提取照片:2025年的6种方法
ios·iphone
代码s贝多芬的音符14 小时前
ios android 小程序 蓝牙 CRC16_MODBUS
android·ios·小程序