我正在使用以下代码保存和加载从相册或通过相机拍摄的图像:
//saving an image
- (void)saveImage:(UIImage*)image:(NSString*)imageName {
NSData *imageData = UIImagePNGRepresentation(image); //convert image into .png format.
NSFileManager *fileManager = [NSFileManager defaultManager];//create instance of NSFileManager
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); //create an array and store result of our search for the documents directory in it
NSString *documentsDirectory = [paths objectAtIndex:0]; //create NSString object, that holds our exact path to the documents directory
NSString *fullPath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.png", imageName]]; //add our image to the path
[fileManager createFileAtPath:fullPath contents:imageData attributes:nil]; //finally save the path (image)
NSLog(@"image saved");
}
//loading an image
- (UIImage*)loadImage:(NSString*)imageName {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fullPath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.png", imageName]];
return [UIImage imageWithContentsOfFile:fullPath];
}
这是我将选择的图像显示在UIImageView
中的方式:
imgView.image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
然而,当我选择一张图片并将其设置为在我的 UIImageView
中显示时,它是正常的,但当我加载该图片时,它经常会显示错误的方向。有什么想法吗?是否有人遇到过这种情况或知道如何解决?
谢谢。
编辑:
所以似乎,如果您加载一个竖直翻转的照片,则以那个方向加载,如果您拍摄了一个横向左侧的照片,则以该方向加载。有什么办法绕过这个问题吗?无论它们以任何方向加载,它们总是返回UIImageOrientationUp。