在swift中裁剪屏幕截图
问题描述:
我正在尝试截取屏幕截图并截取该屏幕截图的一部分。 截图部分工作完美,但我不能让裁剪部分工作。在swift中裁剪屏幕截图
var image = self.view?.pb_takeSnapshot()
let croprect = CGRectMake(view.bounds.width/2, view.bounds.height/3.8,
view.bounds.width/2, view.bounds.height/3.5)
var imageRef = CGImageCreateWithImageInRect(CGImage(image), croprect) //Error: CGImage cannot be constructed because it has no accessible initializers
var croppedImage = UIImage(CGImage: imageRef)
函数,它的截图:
func pb_takeSnapshot() -> UIImage {
UIGraphicsBeginImageContextWithOptions(self.bounds.size, false, UIScreen.mainScreen().scale);
self.drawViewHierarchyInRect(self.bounds, afterScreenUpdates: true)
// old style: self.layer.renderInContext(UIGraphicsGetCurrentContext())
let image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
我的问题:有没有办法做到这一点,而无需使用CGImage,或者是有一个UIImage的转换为CGImage一个简单的方法?
答
UIImage
在大多数情况下包含您可以直接访问的CGImage
。
在你的情况image
使用可选的链接设置,是UIImage?
类型的,所以你将需要:
UIImage?.CGImage
访问CGImage
尝试......'image.CGImage '? – Jack 2015-01-15 16:49:06
错误:UIImage?没有名为CGImage – sdd 2015-01-15 16:50:42
的会员我看,这是一个可选项!所以'图像?.CGImage' – Jack 2015-01-15 16:51:11