Tôi đang cố gắng cắt một vùng của một UIView
, thành một UIImage
để sử dụng lại sau này.UIImage từ một khu vực của UIView
Tôi đã làm việc ra mã này từ một số đoạn:
CGRect _frameIWant = CGRectMake(100, 100, 100, 100);
UIGraphicsBeginImageContext(view.frame.size);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
//STEP A: GET AN IMAGE FOR THE FULL FRAME
UIImage *_fullFrame = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
//STEP B: CLIP THE IMAGE
CGImageRef _regionImage = CGImageCreateWithImageInRect([_fullFrame CGImage], _frameIWant);
UIImage *_finalImage = [UIImage imageWithCGImage:_regionImage];
CGImageRelease(_regionImage);
'xem' là UIView
mà tôi cắt và _finalImage
là UIImage
tôi muốn.
Mã hoạt động không có vấn đề, tuy nhiên là loại chậm. Tôi tin rằng một số hiệu suất có thể đạt được bằng cách chỉ lấy phần màn hình trực tiếp trong Bước A.
Tôi đang tìm một cái gì đó như renderInContext: withRect:
hoặc UIGraphicsGetImageFromCurrentImageContextWithRect()
hehe.
Vẫn chưa tìm thấy bất cứ điều gì chưa :(, xin vui lòng giúp đỡ tôi nếu bạn biết một số thay thế
bạn có thể định dạng lại không? khó đọc – Rudiger