gpt4 book ai didi

objective-c - 如何使用 UIImage 加载 16 位图像?

转载 作者:行者123 更新时间:2023-11-29 13:39:37 25 4
gpt4 key购买 nike

我要优化我的应用程序的内存使用。我的应用程序有许多带图形的用户界面,这些图形占用了大量设备内存。

我尝试使用 16 位图像而不是 32 位图像。我的 OpenGL 纹理的内存消耗减少了。但是,我发现 UIImage 保存的图像占用的内存量与 32 位图像相同。

无论像素格式是 16 位还是 32 位,UIImage 是否使用每个像素 8 位来存储图像?或者我可以做些什么来减少 16 位图像的内存消耗??

非常感谢。

最佳答案

您可以使用 cgdata 提供程序

CGDataProviderRef imgDataProvider = CGDataProviderCreateWithCFData((CFDataRef)[NSData dataWithContentsOfFile:@"some_file.png"]);

然后使用

CGImageRef CGImageCreate (
size_t width,
size_t height,
size_t bitsPerComponent,
size_t bitsPerPixel,
size_t bytesPerRow,
CGColorSpaceRef colorspace,
CGBitmapInfo bitmapInfo,
CGDataProviderRef provider,
const CGFloat decode[],
bool shouldInterpolate,
CGColorRenderingIntent intent
);

函数,为维度、每像素位数设置所有适当的值,并使用在第一步中创建的数据提供程序。

然后通过[UIImage imageWithCGImage:]方法从CGImageRefs中获取UIImage。

关于objective-c - 如何使用 UIImage 加载 16 位图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9529010/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com