Iphone 关于旋转图像的问题
我的应用程序中UIImage的大小为(320460) 我使用创建了另一个UIImage对象Iphone 关于旋转图像的问题,iphone,objective-c,Iphone,Objective C,我的应用程序中UIImage的大小为(320460) 我使用创建了另一个UIImage对象 - (id)initWithCGImage:(CGImageRef)imageRef scale:(CGFloat)scale orientation:(UIImageOrientation)orientation 我将方向指定给UIImageOrientationLeft 然后我打印了新UIImage对象的大小,结果是(460320) 它已经向左旋转了 我需要将UIImage存储在我的文档目录中 NS
- (id)initWithCGImage:(CGImageRef)imageRef scale:(CGFloat)scale orientation:(UIImageOrientation)orientation
我将方向指定给UIImageOrientationLeft
然后我打印了新UIImage对象的大小,结果是(460320)
它已经向左旋转了
我需要将UIImage存储在我的文档目录中
NSData *imageData = UIImagePNGRepresentation(rotateImageView);
NSString * path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
[imageData writeToFile:[path stringByAppendingPathComponent:@"test.png"] atomically:NO];
但是当我从“test.png”中得到UIImage对象时
它的大小已更改为(320460),它已旋转到其原始状态
我希望它可以存储在(460320)
我犯了一些错误吗
谢谢 我也遇到了这个问题。在Apple代码中传递图像方向时,实际上不会旋转任何像素数据。相反,基本上存在与图像一起存储的枚举值。苹果的许多图像渲染器都足够聪明,可以读取此枚举值,并使用它正确显示图像。因此,您共享的代码片段只需更改此枚举值。尊重此值的渲染器将显示您想要的内容,而许多其他渲染器将忽略它 有两种解决方案可用 首先,如果要通过iOS显示图像,可以使用UIImageView的transform属性以及CGAffineTransformMakeRotation来获得所需的方向 其次,您可以实际旋转原始像素数据,这可以通过以下方式完成:
我推荐第一种解决方案,因为它更容易编码,也更高效。但是,如果您要在iOS之外共享这些图像,第二种方法将提供更可靠的结果。我也遇到了这个问题。在Apple代码中传递图像方向时,实际上不会旋转任何像素数据。相反,基本上存在与图像一起存储的枚举值。苹果的许多图像渲染器都足够聪明,可以读取此枚举值,并使用它正确显示图像。因此,您共享的代码片段只需更改此枚举值。尊重此值的渲染器将显示您想要的内容,而许多其他渲染器将忽略它 有两种解决方案可用 首先,如果要通过iOS显示图像,可以使用UIImageView的transform属性以及CGAffineTransformMakeRotation来获得所需的方向 其次,您可以实际旋转原始像素数据,这可以通过以下方式完成: 我推荐第一种解决方案,因为它更容易编码,也更高效。但是,如果您要在iOS之外共享这些图像,第二种方法将提供更可靠的结果