Ios 旋转存储在文档目录中的图像

Ios 旋转存储在文档目录中的图像,ios,objective-c,Ios,Objective C,我编写了一个应用程序,允许用户拍摄存储在NSArray中的照片,然后保存在文档目录中。重新加载图片时,图片存储在UITableView中-注意:由于问题1,当前仅加载一张照片 我有两个问题: 1-这是可行的,但只适用于一张照片,因为我需要能够计算出存储了多少张照片 2-当我重新加载数据并放入UIImageView时,照片的旋转不正确。风景照片是颠倒的,肖像照片是风景照片 非常感谢您对上述任何一个问题的帮助 保存照片 NSArray *paths = NSSearchPathForDirector

我编写了一个应用程序,允许用户拍摄存储在
NSArray
中的照片,然后保存在
文档目录中。重新加载图片时,图片存储在
UITableView
中-注意:由于问题1,当前仅加载一张照片

我有两个问题:

1-这是可行的,但只适用于一张照片,因为我需要能够计算出存储了多少张照片

2-当我重新加载数据并放入
UIImageView
时,照片的旋转不正确。风景照片是颠倒的,肖像照片是风景照片

非常感谢您对上述任何一个问题的帮助

保存照片

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

for (int i=0;i<photoCount;i++)
{
    UIImage *image = [photos objectAtIndex:i];
    NSString *savePicturePath = [saveFolderPath stringByAppendingPathComponent:[NSString stringWithFormat:@"image_%d",i]];
    NSData *imageData = UIImagePNGRepresentation(image);
    [imageData writeToFile:savePicturePath atomically:NO];
}
将图像添加到表中

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:@"photoCell"];
UIImage *currentImage = [self.photos objectAtIndex:indexPath.row];
cell.imageView.image = currentImage;
return cell;
}

您可以通过创建自己的目录并将所有图像存储到该目录来解决第一个问题。然后在阅读时,使用
NSFileManager的contentsOfDirectoryAtPath
获取该目录中所有图像的数组。或者,您可以读取documents文件夹的内容,并使用NSPredicate仅按文件扩展名筛选图像(使用
FilteredarrayingPredicate


至于轮换问题,答案是肯定的。

轮换问题。。。简单:

改变

NSData *imageData = UIImagePNGRepresentation(image);


一切都很完美。感谢乔尔为我指明了正确的方向。

谢谢。事实上,我确实为这些图像创建了一个文件夹,但我删除了这里的代码,以避免它太长。我将研究目录路径的内容——我认为它返回一个目录内容数组是对的吗?另一个答案解释得很好——非常感谢。
NSData *imageData = UIImagePNGRepresentation(image);
NSData *imageData = UIImageJPGRepresentation(image, 1.0);