2012-07-07 10 views
5
[[[globalSingleton paintingView] drawingView] setOpaque:NO]; 
[[[[globalSingleton paintingView] drawingView] layer] setOpaque:NO];  
[[[globalSingleton paintingView] drawingView] setBackgroundColor:[UIColor clearColor]]; 
[[[[globalSingleton paintingView] drawingView] layer] setBackgroundColor:[UIColor clearColor].CGColor]; 

[[[[globalSingleton paintingView] drawingView] layer] renderInContext:ctx]; 

UIImage *image1 = UIGraphicsGetImageFromCurrentImageContext(); 

El código anterior es lo que estoy usando para guardar mi 'drawingView' en un archivo png. Encontré varias preguntas y respuestas, así que las apliqué. Establecí el opaco de mi 'drawingView' y drawingView.layer como NO, y establecí el color de fondo de mi 'drawingView' como [UIColor clearColor]. Creo que apliqué todas las respuestas de stackoverflow. Sin embargo, no hay nada cambiado. El fondo de png fil sigue siendo negro. Necesito fondo transparente, no negro!guardar UIView como archivo png con fondo transparente

He intentado si hay algún problema con UIImage * image1. Usé image1 para mostrar en la pantalla, luego pude encontrar el fondo negro de esa imagen1. Así que podría adivinar que hay algún problema al crear image1.

Esto es todo lo que encontré. ¿Hay alguna solución posible para guardar mi imagen png con una imagen de fondo transparente? ¡¡Gracias por adelantado!!

Respuesta

8

¡Oh, Dios! ¡¡Lo hice!! Agregué [[UIColor clearColor] set]; . Eso es todo.

UIGraphicsBeginImageContextWithOptions(screenRect.size, NO, [[UIScreen mainScreen] scale]); 

CGContextRef ctx = UIGraphicsGetCurrentContext(); 
[[UIColor clearColor] set]; 
CGContextFillRect(ctx, screenRect); 

[[[globalSingleton paintingView] drawingView] setOpaque:NO]; 
[[[[globalSingleton paintingView] drawingView] layer] setOpaque:NO];  
[[[globalSingleton paintingView] drawingView] setBackgroundColor:[UIColor clearColor]]; 
[[[[globalSingleton paintingView] drawingView] layer] setBackgroundColor:[UIColor clearColor].CGColor]; 

[[[[globalSingleton paintingView] drawingView] layer] renderInContext:ctx]; 

UIImage *image1 = UIGraphicsGetImageFromCurrentImageContext(); 
Cuestiones relacionadas