2011-09-28 26 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