2012-07-07 11 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(); 

Powyższy kod jest tym, czego używam do zapisania mojego "rysunkuView" do pliku PNG. Znalazłem kilka pytań i odpowiedzi, więc zastosowałem je. Ustawiłem nieprzezroczystość mojego "rysunkuView" i rysunekView.layer jako NIE, i ustawiłem kolor tła mojego "widoku rysunku" na [UIColor clearColor]. Myślę, że zastosowałem wszystkie odpowiedzi od stackoverflow. Jednak nic się nie zmieniło. Tło png fil jest wciąż czarne. Potrzebuję przezroczystego tła, a nie czarnego !!Zapisz UIView jako plik PNG z przezroczystym tłem

Próbowałem, czy jest jakiś problem z UIImage * image1. Użyłem image1 do wyświetlenia na ekranie, a następnie mogłem znaleźć czarne tło z tego obrazu1. Mogę więc zgadnąć, że jest jakiś problem podczas tworzenia image1.

To wszystko, co znalazłem. Czy jest jakieś możliwe rozwiązanie, aby zapisać obraz z png z przezroczystym tłem? Z góry dziękuję!!

Odpowiedz

8

O, Boże! Ja to zrobiłem!! Dodałem zestaw [[UIColor clearColor]]; . To wszystko.

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();