我一直在为iphone制作一个简单的绘画应用程序。我正在尝试将绘制的图像转换为透明的PNG(我不想要白色背景)。我还想在UIImageView中使用UIImage表示。
目前,我响应触摸事件并绘制到CGLayer的路径,然后将其绘制到我的视图上下文中。我可以访问CGLayer以及视图本身。目前,我使用以下方法将视图输出到图像:
UIGraphicsBeginImageContext(drawingView.bounds.size);
[drawingView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
这只使用视图来创建UIImage。
由于视图具有白色背景,因此它包含在我创建的UIImage中。我想得到一个没有这个白色背景的UIImage,这样我就可以显示和写入一个PNG文件。
我想我应该直接使用CGLayer,但我不确定如何从我有权访问的CGLayerRef
类型中获取。
任何想法都会非常感激。
答案 0 :(得分:5)
我刚刚处理过这个问题。不要在CGLayer
上绘制背景,然后将UIView
的背景设置为:
self.backgroundColor = [UIColor clearColor];
应该这样做,你的png将具有透明的背景。