从UIView子类创建CGImage

时间:2012-07-15 05:03:23

标签: core-graphics cgcontext cgimage

如何从UIView子类创建CGImage?

我应该使用renderInContext:UIGraphicsGetCurrentContext()从包含绘图的视图(UIView的子类)创建CG图像(通过drawRect方法的核心图形)?

我有一个视图,myView,我正在做一些绘图。我想用我创建的绘图做一些其他核心图形操作 - 比如混合模式等导入的照片,所以我需要从myView中获取CGimage。找不到CGImage属性(我的第一个猜测)。我在下面找到了解决方案,但是我的子类“没有声明选择器renderInContext”,所以我收到错误。

UIGraphicsBeginImageContext(myView.bounds.size);
[myView renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

CGImageRef cgImage = image.CGImage;

1 个答案:

答案 0 :(得分:1)

-renderInContext:CALayer上的方法,而不是UIView

请改为:

[myView.layer renderInContext:UIGraphicsGetCurrentContext()];

您还需要导入CALayer的标题:

 #import <QuartzCore/QuartzCore.h>

并将您的应用与QuartzCore框架相关联。