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

alo*_*loo 1 iphone core-graphics uiimage

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

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

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

这只使用视图来创建UIImage.

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

我想我应该直接使用CGLayer,但我不知道如何从CGLayerRef我可以访问的类型中获取它.

任何想法将不胜感激.

  • 阿利姆

ada*_*ell 5

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

self.backgroundColor = [UIColor clearColor];
Run Code Online (Sandbox Code Playgroud)

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