Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在CoreGraphics iphone中将CGLayer转换为*透明*UIImage和PNG文件_Iphone_Uiimage_Core Graphics - Fatal编程技术网

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

在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:

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

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

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