swift - 如何截取屏幕的一部分

标签 swift uiimage screenshot

我需要将图像裁剪为高度为 25、宽度为屏幕长度的矩形。

我已准备好图像并将其放置在屏幕中央。我只想截取矩形。

我关注了this answer ,但出于某种原因,它似乎对我不起作用。

    UIGraphicsBeginImageContextWithOptions(CGSizeMake(self.view.frame.width,25), false, 0)

    self.view.drawViewHierarchyInRect(CGRectMake(self.view.frame.width,25,view.bounds.size.width,view.bounds.size.height), afterScreenUpdates: true)

    let image:UIImage = UIGraphicsGetImageFromCurrentImageContext()

    UIGraphicsEndImageContext()

    statusImage = image

最佳答案

您使用了错误的坐标。使用您的代码,绘图从 View 的右上角开始,并在其右侧绘制空白空间。您应该使用 0 作为 X 值和负 Y 值。例如,如果你想截图一个从 Y=50 开始的柱状图,你应该使用:

self.view.drawViewHierarchyInRect(CGRectMake(0, -50, view.bounds.size.width, view.bounds.size.height), afterScreenUpdates: true)

如果要从 View 的顶部绘制,只需将 0 作为 Y 值即可。

关于swift - 如何截取屏幕的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34887164/

相关文章:

swift - xcode 6 中的选项卡栏 Controller 灰色框

ios - 通过字节数组将图像从 iOS 发送到 .net 服务器

ios - 单击 UITableViewCell 上的 UIImageView 模板图像色调颜色更改

swift - Xcode 6 修复了 TableView Controller 中的 View

swift - 首次选择 pickerView 时未触发条件

node.js - protractor-jasmine2-screenshot-reporter 未在所需文件夹中生成屏幕截图

iphone - 如何在您的 App 中截取屏幕截图并发布到 facebook 上?

c# - 如何简化 href 属性,这样我就不会得到 "the given paths format is not supported"?

ios - 完成 setValue() 会导致 Firebase、Swift 3 崩溃

ios - 'NSInvalidArgumentException',原因 : '*** -[__NSArrayM insertObject:atIndex:]: object cannot be nil'