我發現這個代碼是完美的。但它使用scrollview的大小。我想用我的尺寸。iOS - 使用尺寸截取UIScrollView可見區域?
UIScrollView *contentScrollView;....//scrollview instance
UIGraphicsBeginImageContextWithOptions(contentScrollView.bounds.size,
YES,
[UIScreen mainScreen].scale);
//this is the key
CGPoint offset=contentScrollView.contentOffset;
CGContextTranslateCTM(UIGraphicsGetCurrentContext(), -offset.x, -offset.y);
[contentScrollView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *visibleScrollViewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
如果我想用我的CGSize,我應該怎麼使用CGContextTranslateCTM
?
EDIT
scrollView
我尺寸爲350×350。我加入imageView
作爲其子視圖。 用戶可以縮放和滾動scrollView。
用戶完成縮放/滾動後,用戶可以點擊保存按鈕。此按鈕需要我的屏幕快照scrollView
從上面的代碼。我的截屏圖像大小爲350 x 350(與scrollView
大小相同)。我想截取大小爲1040 x 1040的scrollView並獲得正確的縮放/滾動區域。
我知道,我可以做這個改變大小:
UIGraphicsBeginImageContextWithOptions(CGSizeMake(1040, 1040), YES, [UIScreen mainScreen].scale);
但我不知道如何根據新的尺寸改變抵消一部分。
可以傳遞到CGSize UIGraphicsBeginImageContext(imgV.frame.size); –
是的,我知道這一點。事情是我的滾動視圖將得到放大。我不知道如何設置結果圖像的偏移量。如果你確實知道答案,請幫助我。謝謝。 – imstillalive
@imstillalive所以你不想改變結果圖像的大小,你只是想提供一個自定義的偏移量來定義滾動視圖的部分渲染? – Hamish