2010-03-23 37 views
9

Tôi có hình ảnh trong UIScrollView, có thể cuộn và thu phóng.Cách tạo hình ảnh từ UIView/UIScrollView

Khi người dùng nhấn một nút, tôi muốn mã để tạo ra một hình ảnh từ bất kỳ một phần của UIScrollView là bên trong một khu vực tôi chỉ định với một CGRect.

Tôi đã nhìn thấy mã để cắt UIImages, nhưng tôi không thể thích ứng với nó để làm tương tự cho một cái nhìn, bởi vì nó sử dụng CGContextDrawImage.

Mọi suy nghĩ?

Chúc mừng, Andre

Trả lời

28

Tôi đã đạt được điều đó.

Đây là giải pháp của tôi, dựa trên một số ít những người khác nhau từ trang web:

- (UIImage *)imageByCropping:(UIScrollView *)imageToCrop toRect:(CGRect)rect 
{ 
    CGSize pageSize = rect.size; 
    UIGraphicsBeginImageContext(pageSize); 

    CGContextRef resizedContext = UIGraphicsGetCurrentContext(); 
    CGContextTranslateCTM(resizedContext, -imageToCrop.contentOffset.x, -imageToCrop.contentOffset.y); 
    [imageToCrop.layer renderInContext:resizedContext]; 
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 

    UIGraphicsEndImageContext(); 

    return image; 
} 

mà bạn gọi bằng cách sử dụng:

CGRect clippedRect = CGRectMake(0, 0, 320, 300); 
picture.image = [self imageByCropping:myScrollView toRect:clippedRect]; 
+0

Đó là hữu ích, cảm ơn. Một lỗi nhỏ trong phương pháp, mặc dù: nó đề cập đến scrollView, mặc dù nó nên tham khảo imageToCrop thay vào đó, trong trường hợp người gọi không đặt tên cho khung nhìn là "scrollView". –

+0

Bạn hoàn toàn đúng :) Tôi rất vui vì bạn thấy nó hữu ích. Chúc mừng – Andre

+0

Điều này rất hữu ích! Cảm ơn bạn Andre – Ganesh

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