在CoreGraphics iphone中将CGLayer转换为* transparent * UIImage和PNG文件

时间:2009-07-09 00:26:34

标签: iphone uiimage core-graphics

我一直在为iphone制作一个简单的绘画应用程序。我正在尝试将绘制的图像转换为透明的PNG(我不想要白色背景)。我还想在UIImageView中使用UIImage表示。

目前,我响应触摸事件并绘制到CGLayer的路径,然后将其绘制到我的视图上下文中。我可以访问CGLayer以及视图本身。目前,我使用以下方法将视图输出到图像:

UIGraphicsBeginImageContext(drawingView.bounds.size);
[drawingView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();   
UIGraphicsEndImageContext();

这只使用视图来创建UIImage。

由于视图具有白色背景,因此它包含在我创建的UIImage中。我想得到一个没有这个白色背景的UIImage,这样我就可以显示和写入一个PNG文件。

我想我应该直接使用CGLayer,但我不确定如何从我有权访问的CGLayerRef类型中获取。

任何想法都会非常感激。

  • 阿利姆

1 个答案:

答案 0 :(得分:5)

我刚刚处理过这个问题。不要在CGLayer上绘制背景,然后将UIView的背景设置为:

self.backgroundColor = [UIColor clearColor];

应该这样做,你的png将具有透明的背景。