我已经研究了足够的工作,但无法修复它.只要我将图像存储为UIImage,从相机拍照后,它就可以了,但只要我将此图像存储为PNG表示,它就会旋转90度.
以下是我的代码和我尝试过的所有事情:
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
NSString *mediaType = [info valueForKey:UIImagePickerControllerMediaType];
if([mediaType isEqualToString:(NSString*)kUTTypeImage])
{
AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
delegate.originalPhoto = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
NSLog(@"Saving photo");
[self saveImage];
NSLog(@"Fixing orientation");
delegate.fixOrientationPhoto = [self fixOrientation:[UIImage imageWithContentsOfFile:[delegate filePath:imageName]]];
NSLog(@"Scaling photo");
delegate.scaledAndRotatedPhoto = [self scaleAndRotateImage:[UIImage imageWithContentsOfFile:[delegate filePath:imageName]]];
}
[picker dismissModalViewControllerAnimated:YES];
[picker release];
}
- (void)saveImage
{
AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
NSData *imageData = UIImagePNGRepresentation(delegate.originalPhoto);
[imageData writeToFile:[delegate filePath:imageName] atomically:YES];
}
Run Code Online (Sandbox Code Playgroud)
这里分别从这里和这里取得fixOrientation和scaleAndRotateImage函数.当我在UIImage上应用它们时,它们工作正常并旋转图像,但如果我将图像保存为PNG表示并应用它们则不起作用.
请执行以上功能后请参考以下图片:

有没有一种方法来旋转用PHP的图片只有当它的iOS上传后,无法正确定位?
一些图片旋转90度,而其他图片正确上传.
我正在使用UIImagePickerController在iphone上以纵向模式拍摄照片并保存到网络上.照片在手机上以纵向显示,但在网络上旋转90度.
如果我下载照片并在预览(mac)或Photoshop(mac或pc)中查看它,它再次成像.在Windows图片查看器(PC)中,它旋转为横向.
在上传之前,是否需要对图像数据应用旋转变换?那么我是否还需要删除在Photoshop和预览中旋转它的元数据?
请注意以下答案 - 不适用于iOS6,所以我仍然需要一个答案!
我的应用程序仅在纵向模式下启用.
但是,如果我将UIImagePickerController作为子视图嵌入并旋转设备,则顶部和底部栏位于同一位置,但UIImagePickerController会旋转.
如何防止它旋转?
这是代码:
[self.view.window addSubview:self.imagePickerController.view];
self.imagePickerController.showsCameraControls = NO;
self.imagePickerController.view.frame = CGRectMake(0, 90, 320, 320);
self.imagePickerController.allowsEditing = NO;
Run Code Online (Sandbox Code Playgroud)
EDITED
我正在使用iOS6,其中shouldAutorotate不会被调用
我正在使用UIImagePickerController,以便让用户通过拍摄新照片或从图库中选择图像来选择我的应用中的图像.使用画廊,该应用程序工作正常.但是,如果我使用相机作为源,应用程序会占用大量内存,并最终在变得非常慢后被杀死.
有人可以告诉我使用UIImagePickerControllerSourceTypeCamera的最佳方式.
这是我正在使用的代码
if(![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
return;
picker = [[UIImagePickerController alloc] init];
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
picker.delegate = self;
[[self navigationController] presentModalViewController:picker animated:YES];
[picker release];
Run Code Online (Sandbox Code Playgroud) 我正在使用CIDetector来查找图片中的面孔.
它返回的面的坐标是图像文件中的绝对坐标(图像尺寸明显大于屏幕尺寸).
我尝试使用converRect:toView命令.图像本身不是UIView,因此命令不起作用,我也有一些视图嵌入到彼此内部,最终显示图像.
我想将图像中找到的面的边界转换为嵌入图像中屏幕上显示的面部的确切位置.
如何实现这一目标?
任何人都可以告诉我如何使用UIImagePickerController(相机和相册)代表确定图像的方向,相应地旋转,并将其分配给UIImageView?
iphone ×6
ios ×3
cocoa-touch ×2
objective-c ×2
exif ×1
image ×1
ios5.1 ×1
orientation ×1
php ×1
scaling ×1
uiimage ×1
upload ×1