【发布时间】:2014-02-05 19:16:34
【问题描述】:
我正在尝试截取我的 iPad 应用程序的屏幕截图,并创建一个 UIImage,然后我可以对其进行模糊处理并做一些有趣的事情。我正在使用以下代码截取屏幕截图,它运行良好:
- (UIImage *)convertViewToImage
{
UIGraphicsBeginImageContext(self.bounds.size);
[self drawViewHierarchyInRect:self.bounds afterScreenUpdates:YES];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
但是,我的应用仅支持横向,并且出来的屏幕截图向左旋转 90 度(纵向)。我在我的UIWindow 上调用了这个方法,我知道UIWindow 使用不同的坐标系,但我不太清楚如何旋转UIImage。我在这里阅读了几个类似的问题并尝试了他们的解决方案(使用initWithCGImage:scale:orientation,并重新绘制图像),但由于它是全屏 iPad 图像,如果我旋转它,它似乎会保留实际的肖像尺寸,但将旋转后的图像拉伸到其中。
简而言之,上面的方法给了我我需要的东西,但是是 768x1024,而不是 1024x768。我需要将它向左旋转 90 度,与在 Preview、Photoshop 等中的旋转完全相同。
【问题讨论】:
-
你能在根视图控制器的视图上调用它吗?
-
我当然可以!完美运行,非常感谢。想要提交答案以便我标记它吗?
标签: ios objective-c uiview ios7 core-graphics