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;
}
相关推荐
非专业程序员Ping19 小时前
Vibe Coding 实战!花了两天时间,让 AI 写了一个富文本渲染引擎!
ios·ai·swift·claude·vibecoding
00后程序员张21 小时前
HTTP抓包工具推荐,Fiddler配置方法、代理设置与使用教程详解(开发者必学网络调试技巧)
网络·http·ios·小程序·fiddler·uni-app·webview
2501_940094021 天前
iphone Delta模拟器如何从夸克网盘导入游戏ROM 附游戏资源下载
游戏·ios·iphone
2501_940094021 天前
iPhone Delta模拟器游戏资源包合集中文游戏ROM+BIOS+Delta皮肤附游戏导入教程
游戏·ios·iphone
2501_915918411 天前
HTTP和HTTPS工作原理、安全漏洞及防护措施全面解析
android·http·ios·小程序·https·uni-app·iphone
白玉cfc1 天前
【iOS】UICollectionView
macos·ios·cocoa
2501_916007471 天前
如何在 Windows 电脑上调试 iOS 设备上的 Safari?完整方案与实战经验分享
android·windows·ios·小程序·uni-app·iphone·safari
2501_915918411 天前
uni-app iOS日志管理实战,从调试控制台到系统日志的全链路采集与分析指南
android·ios·小程序·https·uni-app·iphone·webview
ajassi20001 天前
开源 Objective-C IOS 应用开发(一)macOS 的使用
macos·ios
ajassi20001 天前
开源 Objective-C IOS 应用开发(二)Xcode安装
ios·objective-c·xcode