真的希望你能帮助这一天一整天都在困扰我
是否可以保持UIImage(说景观)的方向,但是在里面旋转图像?
我使用以下代码保存我的UIImage
[UIImagePNGRepresentation(image) writeToFile:pngPath atomically:YES];
其中image是UIImage。
下图显示了根据设备的方向保存的内容。
底部4是我想要实现的目标
基本上无论你转动设备的方式我都试图让图片在横向模式中显示
感谢任何帮助
标记
答案 0 :(得分:0)
试试这个
UIImage* landscapeImage = [UIImage imageWithCGImage:image.CGImage
scale:image.scale
orientation:UIImageOrientationLeft];
[UIImagePNGRepresentation(landscapeImage) writeToFile:pngPath atomically:YES];
答案 1 :(得分:0)
我只是正常保存图像文件然后在UI中更改imageView。只要图像始终处于纵向模式,您就可以将图像视图旋转90度,如下所示:
self.imageView.transform = CGAffineTransformMakeRotation(M_PI_2);
然后将imageView模式设置为Aspect Fit
self.imageView.contentMode = UIViewContentModeScaleAspectFit;
但是,如果您的图像需要以其他方式旋转或者已经定位在横向中,则无法使用此功能。
答案 2 :(得分:0)
是否有助于确定拍摄图像的方向?
https://stackoverflow.com/a/15039536
如果没有,也许你可以为自己的问题寻找灵感。基本上创建具有正确宽度/高度的上下文,转换为旋转,绘制图像,存储为新图像。
var currentNextWidth ....
另请阅读有关相机和图库不同结果的评论。
如果您只想显示它旋转,您可以像@bryannorden建议的那样改变UIView。
答案 3 :(得分:0)
NSBitmapImageRep *bit_map = [[NSBitmapImageRep alloc]
initWithBitmapDataPlanes:NULL
pixelsWide:img_size.width
pixelsHigh:img_size.height
bitsPerSample:8
samplesPerPixel:4
hasAlpha:YES
isPlanar:NO
colorSpaceName:NSDeviceRGBColorSpace
bitmapFormat:NSAlphaFirstBitmapFormat
bytesPerRow:0
bitsPerPixel:0];
NSAffineTransform *trans2=[NSAffineTransform transform];
[trans2 translateXBy:dirtyRect.size.width/2 yBy:dirtyRect.size.height/2];
[trans2 rotateByDegrees: angle];
[trans2 concat];
NSGraphicsContext *g=[NSGraphicsContext graphicsContextWithBitmapImageRep:bit_map];
[NSGraphicsContext saveGraphicsState];
[NSGraphicsContext setCurrentContext:g];
[img drawInRect:NSMakeRect(0, 0, img_size.width, img_size.height)];
[NSGraphicsContext restoreGraphicsState];
[bit_map drawInRect:NSMakeRect(-img_size.width/2, -img_size.height/2, img_size.width, img_size.height)];