2013-01-02 34 views
5

उत्तर देने की कोशिश करने के बाद here रेट की गई छवि रेटिना डिस्प्ले पर बहुत खराब गुणवत्ता का है। मेरी मास्क छवि में एक सफेद पृष्ठभूमि और काले सामग्री है। किसी भी मदद की सराहना की है।रेटिना गुणवत्ता में 2 यूआईएममेज का मास्किंग

आउटपुट: http://cl.ly/image/2A433N3t1h33 कोड:

CGRect rect = CGRectMake(0.0f, 0.0f, 61.0f, 53.0f); 
UIGraphicsBeginImageContextWithOptions(rect.size, NO, 2); 
CGContextRef context = UIGraphicsGetCurrentContext(); 

CGContextSetFillColorWithColor(context, [UIColor blueColor].CGColor); 
CGContextFillRect(context, rect); 

UIImage *imageGradient = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

UIImage *toggleImage = [UIImage imageNamed:@"RotationToggle.png"]; 
UIImage *inputImage = imageGradient; 
CGImageRef maskRef = toggleImage.CGImage; 

CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef), 
            CGImageGetHeight(maskRef), 
            CGImageGetBitsPerComponent(maskRef), 
            CGImageGetBitsPerPixel(maskRef), 
            CGImageGetBytesPerRow(maskRef), 
            CGImageGetDataProvider(maskRef), NULL, false); 

CGImageRef masked = CGImageCreateWithMask(imageGradient.CGImage, mask); 
CGImageRelease(mask); 

UIImage *maskedImage = [UIImage imageWithCGImage:masked scale:inputImage.scale orientation:0]; 
CGImageRelease(masked); 

उत्तर

-1

मैं पूरी तरह से यकीन नहीं है, लेकिन इस लाइन बदलने का प्रयास करें:

UIImage *toggleImage = [UIImage imageNamed:@"RotationToggle.png"]; 
इस के लिए

:

UIImage *toggleImage = [UIImage imageNamed:@"RotationToggle"]; 

या इस अनुभवहीन:

UIImage *toggleImage = [UIImage imageNamed:@"[email protected]"]; 

बात यह है कि: मुझे लगता है कि आप इसे कम तरीके से कम गुणवत्ता वाली छवि का उपयोग करने के लिए मजबूर करते हैं। एक्सटेंशन को छोड़ते समय, एक्सकोड स्वचालित रूप से रेटिना छवि की तलाश करेगा और यदि कोई मौजूद है तो इसे असाइन करें।

हालांकि मैं गलत हो सकता हूं, क्षमा करें यदि ऐसा है।