2012-01-17 10 views
6

Tôi muốn biết làm cách nào để tạo một góc mờ/cạnh của UIImage làm ảnh đính kèm.Tạo các góc/cạnh mờ trên UIImage (không hoạt hình)

Tôi đã đặt nó làm lớp và chứa các góc tròn như bên dưới, nhưng mã tôi có thể làm mờ hoặc làm mờ nó là gì?

-(void) viewDidLoad{ 
[super viewDidLoad]; 
CALayer * layer = [image layer]; 
[layer setMasksToBounds:YES]; 
[layer setCornerRadius:10.0]; 

}

Thank you very much.

enter image description here

+0

là yêu cầu cho các cạnh mờ dần sang màu trắng hoặc cho họ mờ dần đến nền/trong suốt? –

+0

mờ dần về nền/trong suốt sẽ là tốt nhất. Cảm ơn – Clarence

Trả lời

6

Mở rộng câu trả lời ở trên tạo mặt nạ với trung tâm hoàn toàn mờ đục và các cạnh nên pha trộn theo hướng minh bạch sau đó sử dụng đoạn mã sau để che

- (UIImage*) maskImage:(UIImage *)image withMask:(UIImage *)maskImage { 

    CGImageRef imgRef = [image CGImage]; 
    CGImageRef maskRef = [maskImage CGImage]; 
    CGImageRef actualMask = CGImageMaskCreate(CGImageGetWidth(maskRef), 
               CGImageGetHeight(maskRef), 
               CGImageGetBitsPerComponent(maskRef), 
               CGImageGetBitsPerPixel(maskRef), 
               CGImageGetBytesPerRow(maskRef), 
               CGImageGetDataProvider(maskRef), NULL, false); 
    CGImageRef masked = CGImageCreateWithMask(imgRef, actualMask); 
    return [UIImage imageWithCGImage:masked]; 

} 
+0

Tôi có thể tạo cùng một loại mặt nạ theo chương trình khi đang di chuyển không? Trong trường hợp của tôi kích thước UIImage khác nhau và mặt nạ không thể có cùng kích thước mỗi lần! – Nil

3

Nếu kích thước của hình ảnh của bạn luôn luôn là như nhau (hoặc tỉ lệ vẫn như cũ) sau đó bạn có lẽ tốt nhất thực hiện điều này bằng cách sử dụng mặt nạ CALayer.

Trước mắt bạn sẽ tạo hình ảnh mặt nạ (trong photoshop hoặc công cụ tương tự) chỉ định rằng hình vuông trung tâm của hình ảnh phải mờ đục hoàn toàn và các cạnh phải được hòa trộn với độ trong suốt.

Trong mã bạn muốn tải hình ảnh này và tạo mặt nạ CALayer mà sau đó bạn sử dụng để che hình ảnh gốc.

Tôi rất tiếc vì tôi không có bất kỳ mã nào tiện dụng cho việc này nhưng có thể giúp bạn bắt đầu!