【发布时间】:2015-04-28 20:16:31
【问题描述】:
我正在开发一个必须保存和加载可变数量的 UIImages 的应用程序。目前我正在用 126 张图片对其进行测试。
我使用 for 循环将每个 UIImage 的数据写入文件,并使用另一个 for 循环再次加载图像。 我使用以下代码将 UIImages 保存到文件中:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *component = [NSString stringWithFormat:@"ImageFile%i.png",[sing.externComponentCounter intValue]];
sing.externComponentCounter = [NSNumber numberWithInt:[sing.externComponentCounter intValue]+1];
NSString *path = [documentsDirectory stringByAppendingPathComponent:component];
self.sideOneImagePath = component;
NSData *imageOneData = UIImagePNGRepresentation(self.sideOneImage);
[imageOneData writeToFile:path atomically:YES];
externalCounter 是我的单例对象的 NSNumber 属性。
为了加载我使用的 UIImages:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:self.sideOneImagePath];
self.sideOneImage = [UIImage imageWithContentsOfFile:path];
此代码通常运行良好,但 UIImage 有时底部有黑条或黑线。
例如https://www.dropbox.com/s/8qt2x45sqqnkwzy/image1.JPG?dl=0
请注意,图片底部的黑条不应存在,因为它现在无法阅读图片上的整个文本。
到目前为止,我无法识别这种情况发生的模式,它似乎只是随机发生的。它永远不会发生在一张图片上,但总是发生在所有这 126 个 UIImage 上。要么它工作得非常好,要么所有图片都有一个大小不同的黑条。
我正在使用最新 iOS 版本的 iPhone 6 上测试该应用程序,并且我正在使用最新的 Xcode 版本。
很遗憾,我完全不知道是什么导致了我的问题,而且我在互联网上也没有发现任何类似的问题。
提前感谢您,任何帮助将不胜感激!
【问题讨论】:
-
你写出来的时候好像没有完整的图像……原始图像来自哪里?
-
我倾向于认为 Dylan 的评估是正确的。似乎图像加载过程中的某些东西导致了问题。如果您同时加载图像,请尝试更改为顺序以进行故障排除。我敢打赌,如果您这样做,如果出现任何问题,那将只是一张图片。无论如何,我曾经在拨号调制解调器时代看到这样的图像,当时在传输图像的过程中连接中断。
-
如果您有损坏或部分数据会发生这种情况,您需要确保整个图像已下载且没有错误。
-
图片最初来自 iPhone 照片库,使用 UIImagePickerView。
标签: ios objective-c iphone uiimage