2013-01-02 35 views
5

Sau khi thử câu trả lời được đăng here hình ảnh được trả lại có chất lượng rất kém trên màn hình hiển thị võng mạc. Hình ảnh mặt nạ của tôi có nền màu trắng và nội dung màu đen. Bất kỳ trợ giúp được đánh giá cao.Mặt nạ 2 UIImages trong Chất lượng võng mạc

Output: http://cl.ly/image/2A433N3t1h33 Code:

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

Trả lời

-1

Tôi không hoàn toàn chắc chắn, nhưng hãy thử thay đổi dòng này:

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

này:

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

hoặc ngây thơ này:

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

Điều này là: Tôi nghĩ bạn buộc nó sử dụng hình ảnh chất lượng thấp bằng cách gán nó theo cách này. Khi bỏ qua phần mở rộng, Xcode sẽ tự động tìm kiếm hình ảnh Retina và gán nó nếu có.

Tôi có thể nhầm, xin lỗi nếu có.

Các vấn đề liên quan