gpt4 book ai didi

iPhone iOS 保存从 UIImageJPEGRepresentation() 获取的数据第二次失败 : ImageIO: CGImageRead_mapData 'open' failed

转载 作者:技术小花猫 更新时间:2023-10-29 10:55:53 28 4
gpt4 key购买 nike

我在处理 UIImage 时遇到了一个奇怪的问题。

我正在进行保管箱同步,并且必须将我的图像存储为本地文件。为此,我使用 UIImagePNGRepresentation(image)UIImageJPEGRepresentation(image, 0.66)

保存它们

这是我的典型工作流程:用户选择图像或拍照图像被分配给 imageView使用以下方法将 ImageView 的 UIImage 保存到文件中

下次用户重新打开应用程序时,我使用

从文件中读回图像
[UIImage imageWithContentsOfFile:fullImagePath]

这一次有效。

我第二次运行例程时,再次尝试将图像保存到磁盘时收到下面列出的错误消息。

//saving the image
NSData* data = isPNG?UIImagePNGRepresentation(image):UIImageJPEGRepresentation(image, 0.66);
BOOL success = [data writeToFile:filepath atomically:YES];
if(!success)
{
DLog(@"failed to write to file: %@",filepath );
}


//loading the image
[UIImage imageWithContentsOfFile:fullImagePath]

当我尝试重新保存之前已转换为 JPEG 或 PNG 的图像时出现此错误

2012-05-21 08:16:06.680   file already exists: NO
ImageIO: CGImageRead_mapData 'open' failed '/var/mobile/Applications/C1312BF8-C648-4397-82F3-D93E4FAAD35F/Documents/imageData/LogoImage.jpg'
error = 2 (No such file or directory)
May 21 08:16:06 <Error>: ImageIO: JPEG Not a JPEG file: starts with 0xff 0xd9
May 21 08:16:06 <Error>: ImageIO: JPEG Application transferred too few scanlines

在我看来,这个错误是由于我再次尝试将图像重新保存为 JPEG 而发生的。如果我要求 View 在上下文中呈现自身(有效地创建新图像),则不会发生错误。

有谁知道我做错了什么?尝试将 UIImage 转换为数据、重新加载它并在向用户显示后再次尝试转换它时,我是否遗漏了某种元数据?

最佳答案

我以前遇到过类似的事情。看起来 imageWithContentsOfFile 只要用于创建的 UIImage 仍然存在,文件就会保持打开状态。当时,我通过将文件读入 NSData 然后从 NSData 而不是文件创建 UIImage 来解决这个问题直接。

关于iPhone iOS 保存从 UIImageJPEGRepresentation() 获取的数据第二次失败 : ImageIO: CGImageRead_mapData 'open' failed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10685276/

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