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

Yukarıdaki kod, 'drawingView' öğesini png dosyasına kaydetmek için kullandığım koddur. Birkaç soru ve cevap buldum, bu yüzden onları uyguladım. 'DrawingView' ve drawingView.layer'ımın opasını NO olarak ayarladım ve 'drawingView' öğesinin arka plan rengini [UIColor clearColor] olarak ayarladım. Bence tüm cevapları stackoverflow'tan uyguladım. Ancak, hiçbir şey değişmedi. Png filinin arka planı hala siyahtır. Saydam arka plana ihtiyacım var, siyah değil!UIView'yi saydam arka planlı png dosyası olarak kaydetme

UIImage * image1 ile ilgili herhangi bir sorun olup olmadığını denedim. Ekranda göstermek için image1 kullandım, sonra o görüntüden siyah arka plan bulabilirim1. Bu yüzden image1 oluştururken herhangi bir sorun olduğunu tahmin edebilirim.

Tüm bulduğum bu. Benim png görüntüyü şeffaf arka plan görüntüsü ile kaydetmek için herhangi bir çözüm var mı? Şimdiden teşekkürler!!

cevap

8

Oh, tanrım! Yaptım!! [[UIColor clearColor] kümesini ekledim]; . Bu kadar.

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(); 
İlgili konular