您好,匿名用户
随意问技术百科期待您的加入

怎么把一个UIView的指定区域存成图片

+2 投票

我已经实现了把一个UIView直接生成图片。

UIGraphicsBeginImageContext(myView.bounds.size);
[myView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

但是,我需要截取这个UIView的一部分,比如中间100个像素,怎么实现呢?

用户头像 提问 2012年 12月1日 @ Shen 上等兵 (318 威望)
分享到:

2个回答

+2 投票
 
最佳答案
UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, YES, 1);
        [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
        UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
        
        //UIImageWriteToSavedPhotosAlbum(img, self, nil, nil);
        
        UIGraphicsEndImageContext();

self.view就是想要保存的view

我没看清楚题目 如果是保存指定区域的话,就把上述代码得到的image,通过下面的代码得到所需的指定区域图片并保存。

UIImage *resultImg = [UIImage imageWithCGImage:CGImageCreateWithImageInRect(img.CGImage, rect)];
用户头像 回复 2013年 2月8日 @ 随意问 上等兵 (128 威望)
选中 2013年 2月8日 @Saber
0 投票
[myView.layer renderInContext:UIGraphicsGetCurrentContext()];

这个地方不是已经获取到当前图像的context了么,然后用路径裁剪获取需要的部分应该就可以吧。

CGContextBeginPath(context);
    CGContextAddRect(context, rect)
    CGContextClip(context);

不知道可以么,没有试。

用户头像 回复 2012年 12月1日 @ Xin Zhao 上等兵 (320 威望)
提一个问题:

相关问题

+2 投票
1 回复 89 阅读
用户头像 提问 2013年 1月7日 @ Saber 中士 (1,234 威望)
0 投票
1 回复 34 阅读
用户头像 提问 2013年 12月29日 @ Rider 上等兵 (281 威望)
0 投票
1 回复 37 阅读
用户头像 提问 2012年 12月1日 @ Volibear 上等兵 (259 威望)
0 投票
0 回复 22 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...