gpt4 book ai didi

ios - UIImageJPEGRepresentation 占用大量内存

转载 作者:可可西里 更新时间:2023-11-01 05:12:53 25 4
gpt4 key购买 nike

我试图找出这个问题,但在做了我在操作系统或谷歌上发现的所有事情后都失败了。问题是,当我使用 UIImageJPEGRepresentationUIImagePNGRepresentationUIImage 转换为 NSData 时,它会将内存大小增加到 30Mb(相信我与否)。
这是我的代码

myImage= image;
LoginSinglton*loginObj = [LoginSinglton sharedInstance];
NSError *error;
NSData *pngData = UIImageJPEGRepresentation(image, scaleValue); //scaleVale is 1.
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsPath = [paths objectAtIndex:0]; //Get the docs directory

self.imageCurrentDateAndTime =[self getTimeAndDate];
self.filePathAndDirectory = [documentsPath stringByAppendingPathComponent:@"Photos Dir"];

NSLog(@"Documents path %@",self.filePathAndDirectory);
if (![[NSFileManager defaultManager] createDirectoryAtPath:self.filePathAndDirectory
withIntermediateDirectories:NO
attributes:nil
error:&error])
{
NSLog(@"Create directory error: %@", error);
}
self.imageName= [NSString stringWithFormat:@"photo-%@-%@.jpg",loginObj.userWebID,self.imageCurrentDateAndTime];
NSString *filePath = [self.filePathAndDirectory stringByAppendingPathComponent:self.imageName];

[pngData writeToFile:filePath atomically:YES]; //Write the file
[self writeImageThumbnailToFolder:image];
[self writeImageHomeViewThumbnailToFolder:image];

我也尝试过以下解决方案 UIImageJPEGRepresentation - memory release issue
1- 使用@autoreleasepool
2- 完成 pngData = nil;
但仍然面临内存问题。

编辑 我想我无法表达我的问题。如果 UIImageJPEGRepresentation 占用大量内存,这没关系,但是在保存该图像后,内存应该回到它之前的位置。希望这对您有所帮助。

最佳答案

使用小于 1 的 scaleValue。即使是 0.9 也会在质量损失最小的情况下大量减少内存占用。

关于ios - UIImageJPEGRepresentation 占用大量内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20244782/

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