从文件加载的UIImage部分为黑色

时间:2015-04-28 20:16:32

标签: ios objective-c iphone uiimage

我正在开发一个必须保存和加载可变数量的UIImages的应用程序。目前我用126张图片测试它。

我使用for循环将每个UIImage的数据写入文件,并使用另一个循环来再次加载图像。 我使用以下代码将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];

此代码通常可以正常工作,但UIImages的底部有时会出现黑条或黑线 例如https://www.dropbox.com/s/8qt2x45sqqnkwzy/image1.JPG?dl=0

请注意,图片底部的黑条不应该在那里,因为它现在无法读取图片上的全文。
到目前为止,我无法识别出发生这种情况的模式,它似乎是随机发生的。它永远不会发生在单个图片上,但总是发生在126个UIImages中。它可以完美地工作,或者所有的图片都有一个不同大小的黑条。

我正在使用最新的iOS版本在iPhone 6上测试应用程序,而我正在使用最新的Xcode版本。

不幸的是,我完全不知道是什么原因引起了我的问题,而且我没有在互联网上发现任何类似的问题。

提前感谢您,任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

即使已经两年多了,我也在回答别人的问题。

问题是我同时将所有文件写入磁盘。显然这太过分了。

我只是更改了应用程序逻辑,以确保图像在用户添加后立即保存,而不是最终保存。