2011-09-28 42 views
2

我有這樣的代碼:的CGRect到的UIImage

CGRect visibleRect; 
visibleRect.origin = mainViewController.scrollView.contentOffset; 
visibleRect.size = mainViewController.scrollView.bounds.size; 

我想保存在裏面UIImagevisibleRect內容。那可能嗎?

回答

1

該代碼可以工作:

UIGraphicsBeginImageContext(visibleRect.size); 
CGContextTranslateCTM(UIGraphicsGetCurrentContext(), visibleRect.origin.x, 
    visibleRect.origin.y); 
[mainViewController.scrollView.layer 
    renderInContext:UIGraphicsGetCurrentContext()]; 
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 
+0

renderInContext找不到,爲什麼? – CrazyDev

+0

這只是一個警告,對吧?我認爲它仍然能夠工作 - 即使編譯器在那裏並且工作正常,編譯器也會在「圖層」方法上展示出來。 – MusiGenesis

+2

我添加了#import 然後它現在可以工作,但是我有一個白色的矩形,而不是scrollview的內容 – CrazyDev

0

您不能在CGRect中存儲UIImage。你會做類似下面

CGRect visibleRect; 
visibleRect.origin = mainViewController.scrollView.contentOffset; 
visibleRect.size = mainViewController.scrollView.bounds.size; 

UIImageView* img = [[UIImageView alloc] init]; 
[img setFrame:visibleRect]; 
[img setImage:[UIImage imageNamed:@"Your-img"]]; 
[[self view] addSubview:img]; 
[img release]; 
+1

我覺得OP要複製什麼是在可見的CGRect到一個UIImage - 就像把一個屏幕截圖。 – MusiGenesis

+0

不,我想把我的scrollview的可見矩形保存在UIImageView或UIImage – CrazyDev