首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在iOS上旋转图像90度?

如何在iOS上旋转图像90度?
EN

Stack Overflow用户
提问于 2012-07-26 10:42:29
回答 14查看 88.8K关注 0票数 49

我想要做的是从我的相机中拍摄一张快照,将其发送到服务器,然后服务器将图像通过viewController传回给我。如果图像处于纵向模式,则图像在屏幕上显示良好,但如果图像是在横向模式下拍摄的,则图像在屏幕上呈条纹显示(因为它试图在纵向模式下显示!)。我不知道如何解决这个问题,但我猜一个解决方案是首先检查图像是否处于纵向/横向模式,如果是横向模式,则将其旋转90度,然后在屏幕上显示。那么我该怎么做呢?

EN

回答 14

Stack Overflow用户

回答已采纳

发布于 2012-07-26 10:45:16

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
self.imageview.transform = CGAffineTransformMakeRotation(M_PI_2);

Swift 4+:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
self.imageview.transform = CGAffineTransform(rotationAngle: CGFloat(Double.pi/2))
票数 128
EN

Stack Overflow用户

发布于 2012-07-26 10:59:10

这是完整的代码,用于旋转图像的任何程度,只需添加到适当的文件,即在.m中,如下所示,您想要使用图像处理

用于.m的

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@interface UIImage (RotationMethods)
- (UIImage *)imageRotatedByDegrees:(CGFloat)degrees;
@end

@implementation UIImage (RotationMethods)

static CGFloat DegreesToRadians(CGFloat degrees) {return degrees * M_PI / 180;};

- (UIImage *)imageRotatedByDegrees:(CGFloat)degrees 
{   
    // calculate the size of the rotated view's containing box for our drawing space
    UIView *rotatedViewBox = [[UIView alloc] initWithFrame:CGRectMake(0,0,self.size.width, self.size.height)];
    CGAffineTransform t = CGAffineTransformMakeRotation(DegreesToRadians(degrees));
    rotatedViewBox.transform = t;
    CGSize rotatedSize = rotatedViewBox.frame.size;

    // Create the bitmap context
    UIGraphicsBeginImageContext(rotatedSize);
    CGContextRef bitmap = UIGraphicsGetCurrentContext();

    // Move the origin to the middle of the image so we will rotate and scale around the center.
    CGContextTranslateCTM(bitmap, rotatedSize.width/2, rotatedSize.height/2);

    //   // Rotate the image context
    CGContextRotateCTM(bitmap, DegreesToRadians(degrees));

    // Now, draw the rotated/scaled image into the context
    CGContextScaleCTM(bitmap, 1.0, -1.0);
    CGContextDrawImage(bitmap, CGRectMake(-self.size.width / 2, -self.size.height / 2, self.size.width, self.size.height), [self CGImage]);

    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return newImage;

}

@end

这是来自苹果的SquareCam示例的代码片段。

要调用上述方法,只需使用以下代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
UIImage *rotatedSquareImage = [square imageRotatedByDegrees:rotationDegrees];

这里正方形是一个UIImage,而是一个flote ivar,用于旋转图像

票数 30
EN

Stack Overflow用户

发布于 2017-04-13 20:19:16

Swift 3和Swift 4改用.pi

例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//rotate 90 degrees
myImageView.transform = CGAffineTransform(rotationAngle: .pi / 2)

//rotate 180 degrees
myImageView.transform = CGAffineTransform(rotationAngle: .pi)

//rotate 270 degrees
myImageView.transform = CGAffineTransform(rotationAngle: .pi * 1.5)
票数 21
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11667565

复制
相关文章
旋转图像
说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。
木瓜煲鸡脚
2021/01/18
1.3K0
旋转图像
旋转图像\
给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。
狼啸风云
2023/10/23
2220
旋转图像\
图像旋转
描述 输入一个n行m列的黑白图像,将它顺时针旋转90度后输出。 输入第一行包含两个整数n和m,表示图像包含像素点的行数和列数。1 <= n <= 100,1 <= m <= 100。 接下来n行,每行m个整数,表示图像的每个像素点灰度。相邻两个整数之间用单个空格隔开,每个元素均在0~255之间。输出m行,每行n个整数,为顺时针旋转90度后的图像。相邻两个整数之间用单个空格隔开。样例输入 3 3 1 2 3 4 5 6 7 8 9 样例输出 7 4 1 8 5 2 9 6 3 #include<iostrea
用户1631856
2018/04/12
2K0
图像旋转
问题描述 试题编号: 201503-1 试题名称: 图像旋转 时间限制: 5.0s 内存限制: 256.0MB 问题描述: 问题描述   旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转90度。   计算机中的图像表示可以用一个矩阵来表示,为了旋转一个图像,只需要将对应的矩阵旋转即可。 输入格式   输入的第一行包含两个整数n, m,分别表示图像矩阵的行数和列数。   接下来n行每行包含m个整数,表示输入的图像。 输出格式   输出m行,每行包含n个整数,表示原始矩阵逆时针旋转90度后的矩阵。 样例输入 2 3 1 5 3 3 2 4 样例输出 3 4 5 2 1 3 评测用例规模与约定   1 ≤ n, m ≤ 1,000,矩阵中的数都是不超过1000的非负整数。
geekfly
2022/05/06
9460
小白如何在ios中安装ios上架
以前四布我们都做过,详细看这个博客:使用Appuploader在窗口上申请iOS开发所需的证书和描述文件,我们主要看下面的几个步骤。
iOS Magician
2023/03/22
9610
小白如何在ios中安装ios上架
iOS屏幕旋转
UIInterfaceOrientation方向枚举: UIInterfaceOrientationPortrait //home健在下 UIInterfaceOrientationPortraitUpsideDown //home健在上 UIInterfaceOrientationLandscapeLeft //home健在左 UIInterfaceOrientationLandscapeRight //home健在右 旋转屏幕时触发的函数: //旋转方向发生改变时 -(void)willAnim
且行且珍惜_iOS
2018/05/22
1.7K0
OpenCV旋转图像
M = cv2.getRotationMatrix2D((cx, cy), angle, 1) # 旋转中心,角度degree,放大比例
用户6021899
2023/09/19
2270
OpenCV旋转图像
opencv图像翻转、图像旋转
淼学派对
2023/10/14
3300
opencv图像翻转、图像旋转
图像旋转矫正
11.0 uint8 3 0.017453292519943295 0.022727272727272728 0.022723360841641067 1.3019526725788753 -88.69804732742112
裴来凡
2022/05/29
7550
图像旋转矫正
【CCF】图像旋转
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
喜欢ctrl的cxk
2019/11/08
7450
图像保真旋转
import cv2 import numpy as np from math import * img=cv2.imread('C:/Users/xpp/Desktop/Lena.png') img[:,:,0]=255 def rotate(image,angle): height, width,channels=image.shape #变换后新图像的大小是原图像旋转后的轮廓外接矩形,注意这个外接矩形的长和高也是水平和竖直的 heightNew=int(width*fabs
裴来凡
2022/05/29
5430
图像保真旋转
将数组旋转90度(旋转图像)
You are given an n x n 2D matrix representing an image. Rotate the image by 90 degrees (clockwise).
用户5513909
2023/04/25
1.7K0
将数组旋转90度(旋转图像)
iOS屏幕旋转处理
-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration 被调用。这个方法是发生在翻转开始之前。一般用来禁用某些控件或者停止某些正在进行的活动,比如停止视频播放。 再来是
ppppy
2022/11/15
7640
图像处理: 无损地旋转图像
OpenCV自带的旋转图像方法 (有损) 原图像: 如果用OpenCV自带cv2.warpAffine接口来实现图片旋转: import cv2 # 读取原图像 img = cv2.imrea
JNingWei
2018/09/27
2.7K0
图像处理: 无损地旋转图像
如何在IOS上发布APP详细教程
企业相关文字信息(英文):包括名称、注册地址、固定电话、网址、统一社会信用代码、营业执照扫描件等。
iOS程序应用
2023/04/13
9310
52.如何在图像上添加文字
如果你想为图像添加文字水印,这个技巧你必须掌握。在面对批量图片添加水印的需求时,下面这个程序,只要稍加改动,就可以实现。
TalkPython
2020/02/11
1.6K0
52.如何在图像上添加文字
如何在ios成功上架android tv?​
如果你是新手,将在这里清晰发布到App Store整个上架流程,还有相应的流程解决方案。​
iOS程序应用
2022/12/06
3010
48. 旋转图像
你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。
张伦聪zhangluncong
2022/10/26
5560
点击加载更多

相似问题

Javascript / jQuery图像旋转器,如

10

图像模式旋转木马(如wordpress)

24

如何在iOS上使用Xamarin从文件中旋转图像

16

iOS 8自动旋转屏幕上的图像

13

iOS -旋转图像或图片

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文