在CoreGraphics iphone中将CGLayer转换为*透明*UIImage和PNG文件
我一直在为iphone制作一个简单的绘画应用程序。我正在尝试将绘制的图像转换为透明PNG(我不想要白色背景)。我还想在UIImageView中使用UIImage表示 目前,我响应触摸事件并绘制到CGLayer的路径,然后将其绘制到我的视图上下文。我可以访问CGLayer和视图本身。目前,我使用以下方法将视图输出到图像:在CoreGraphics iphone中将CGLayer转换为*透明*UIImage和PNG文件,iphone,uiimage,core-graphics,Iphone,Uiimage,Core Graphics,我一直在为iphone制作一个简单的绘画应用程序。我正在尝试将绘制的图像转换为透明PNG(我不想要白色背景)。我还想在UIImageView中使用UIImage表示 目前,我响应触摸事件并绘制到CGLayer的路径,然后将其绘制到我的视图上下文。我可以访问CGLayer和视图本身。目前,我使用以下方法将视图输出到图像: UIGraphicsBeginImageContext(drawingView.bounds.size); [drawingView.layer renderInContext:
UIGraphicsBeginImageContext(drawingView.bounds.size);
[drawingView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
这仅使用视图创建UIImage
因为视图有白色背景,所以它包含在我创建的UIImage中。我想得到一个没有白色背景的UIImage,这样我就可以显示并写入PNG文件
我想我应该直接使用我的CGLayer,但我不确定如何从我可以访问的CGLayerRef
类型中获得它
任何想法都将不胜感激
- 阿莱姆
- 我刚刚处理了这个问题。不要在
CGLayer
上绘制背景,然后将ui视图的背景设置为:
self.backgroundColor = [UIColor clearColor];
这样就可以了,你的png将有一个透明的背景。我刚刚处理过这个问题。不要在CGLayer
上绘制背景,然后将ui视图的背景设置为:
self.backgroundColor = [UIColor clearColor];
这样就可以了,你的png将有一个透明的背景。我也被困在这一点上。请你详细解释一下你的答案。或者提供一个示例源代码。我不确定你需要什么信息。您能进一步解释一下您遇到的困难吗?UIGraphicsBeginImageContext(myDrawView.bounds.size)myDrawView.drawViewHierarchyInRect(myDrawView.bounds,AfterScreenUpdate:true)让img=UIGraphicsGetImageFromCurrentImageContext()UIGraphicsSendImageContext()UIImageWriteToSavedPhotosAlbum(img,nil,nil,nil)
它没有将其保存为PNG,我也被困在这一点上。请您更详细地解释您的答案。或者提供一个示例源代码。我不确定您需要什么信息。您能进一步解释一下您遇到的困难吗?UIGraphicsBeginImageContext(myDrawView.bounds.size)myDrawView.drawViewHierarchyInRect(myDrawView.bounds,AfterScreenUpdate:true)让img=UIGraphicsGetImageFromCurrentImageContext()UIGraphicsSendImageContext()UIImageWriteToSavedPhotosAlbum(img,nil,nil,nil)
它不会将其保存为PNG