截取整个view:

  1. -(UIImage*)captureView:(UIView *)theView{
  2. CGRect rect = theView.frame;
  3. if ([theView isKindOfClass:[UIScrollView class]]) {
  4. rect.size = ((UIScrollView *)theView).contentSize;
  5. }
  6.  
  7. UIGraphicsBeginImageContext(rect.size);
  8. CGContextRef context = UIGraphicsGetCurrentContext();
  9. [theView.layer renderInContext:context];
  10. UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
  11. UIGraphicsEndImageContext();
  12. return img;
  13. }

截取view上某一部分:

  1. -(UIImage *)cropImage:(UIImage *)image rect:(CGRect)cropRect
  2. {
  3. CGImageRef imageRef = CGImageCreateWithImageInRect([image CGImage], cropRect);
  4. UIImage *img = [UIImage imageWithCGImage:imageRef];
  5. CGImageRelease(imageRef);
  6. return img;
  7. }

截取scrollerView:

  1. - (UIImage *)captureScrollView:(UIScrollView *)scrollView{
  2. UIImage* image = nil;
  3. UIGraphicsBeginImageContext(scrollView.contentSize);
  4. {
  5. CGPoint savedContentOffset = scrollView.contentOffset;
  6. CGRect savedFrame = scrollView.frame;
  7. scrollView.contentOffset = CGPointZero;
  8. scrollView.frame = CGRectMake(, , scrollView.contentSize.width, scrollView.contentSize.height);
  9.  
  10. [scrollView.layer renderInContext: UIGraphicsGetCurrentContext()];
  11. image = UIGraphicsGetImageFromCurrentImageContext();
  12.  
  13. scrollView.contentOffset = savedContentOffset;
  14. scrollView.frame = savedFrame;
  15. }
  16. UIGraphicsEndImageContext();
  17.  
  18. if (image != nil) {
  19. return image;
  20. }
  21. return nil;
  22. }

多张图片的拼接:

  1. - (UIImage *)composeWithHeader:(UIImage *)header content:(UIImage *)content footer:(UIImage *)footer{
  2. CGSize size = CGSizeMake(content.size.width, header.size.height +content.size.height +footer.size.height);
  3. UIGraphicsBeginImageContext(size);
  4. [header drawInRect:CGRectMake(,
  5. ,
  6. header.size.width,
  7. header.size.height)];
  8. [content drawInRect:CGRectMake(,
  9. header.size.height,
  10. content.size.width,
  11. content.size.height)];
  12. [footer drawInRect:CGRectMake(,
  13. header.size.height+content.size.height,
  14. footer.size.width,
  15. footer.size.height)];
  16.  
  17. UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
  18. UIGraphicsEndImageContext();
  19. return image;
  20. }

ios 图片截取功能 图片拼接功能的更多相关文章

  1. 功能强大的图片截取修剪神器:Android SimpleCropView及其实例代码重用简析(转)

    功能强大的图片截取修剪神器:Android SimpleCropView及其实例代码重用简析 SimpleCropView是github上第一个第三方开源的图片修剪截取利器,功能强大,设计良好.我个人 ...

  2. ios开发视频播放后台下载功能实现 :1,ios播放视频 ,包含基于AVPlayer播放器,2,实现下载,iOS后台下载(多任务同时下载,单任务下载,下载进度,下载百分比,文件大小,下载状态)(真机调试功能正常)

    ABBPlayerKit ios开发视频播放后台下载功能实现 : 代码下载地址:https://github.com/niexiaobo/ABBPlayerKit github资料学习和下载地址:ht ...

  3. Swift实现iOS录音与播放音频功能

    作用AVPLayer:可以用来播放在线及本地音视频AVAudioSession:音频会话,主要用来管理音频设置与硬件交互使用时需要导入 #import <AVFoundation/AVFound ...

  4. C#开发微信门户及应用(15)-微信菜单增加扫一扫、发图片、发地理位置功能

    前面介绍了很多篇关于使用C#开发微信门户及应用的文章,基本上把当时微信能做的接口都封装差不多了,微信框架也积累了不少模块和用户,最近发现微信公众平台增加了不少内容,特别是在自定义菜单里面增加了扫一扫. ...

  5. 我需要在Web上完成一个图片上传的功能

    我需要在Web上完成一个图片上传的功能. 这个页面需要能从手机中选择图片上传. 首先,这个页面是从微信上面触发的,所以修改了微信的的入口地址,增加了身份识别号作为传参. 跳转到页面的时候,页面先检查身 ...

  6. 改进iOS客户端的升级提醒功能

    改进iOS客户端的升级提醒功能 功能设计 先申明一下,我是码农,不是一个产品经理,但我觉得现有市面上的很多 App,设计的 "升级提示功能" 都不太友好.在此分享一下我的想法,欢迎 ...

  7. 与众不同 windows phone (40) - 8.0 媒体: 音乐中心的新增功能, 图片中心的新增功能, 后台音乐播放的新增功能

    [源码下载] 与众不同 windows phone (40) - 8.0 媒体: 音乐中心的新增功能, 图片中心的新增功能, 后台音乐播放的新增功能 作者:webabcd 介绍与众不同 windows ...

  8. PHP用正则批量替换Img中src内容,用正则表达式获取图片路径实现缩略图功能

    PHP用正则批量替换Img中src内容,用正则表达式获取图片路径实现缩略图功能 网上很多正则表达式只能获取或者替换一个img的src内容,或者只能替换固定的字符串,要动态替换多个图片内容的试了几个小时 ...

  9. OneThink实现多图片批量上传功能

    OneThink原生系统中的图片上传功能是uploadify.swf插件进行上传的,默认是只能上传一张图片的,但是uploadify.swf是支持多图片批量上传的,那么我们稍加改动就可实现OneThi ...

随机推荐

  1. spring的三种注入方式

    接口注入(不推荐) 构造器注入(死的应用) getter,setter方式注入(比较常用) Type1 接口注入 我们常常借助接口来将调用者与实现者分离.如: public class ClassA  ...

  2. Java程序版权保护解决方案

    通常C.C++等编程语言开发的程序都被编译成目标代码,这些目标代码都是本机器的二进制可执行代码.通常所有的源文件被编译.链接成一个可执行文件.在这些可执行文件中,编译器删除了程序中的变量名称.方法名称 ...

  3. HDU 1495 非常可乐 BFS搜索

    题意:有个为三个杯子(杯子没有刻度),体积为s,n,m,s=m+n, 刚开始只有体积为s的杯子装满可乐,可以互相倒,问你最少的次数使可乐均分,如果没有结果,输出-1; 分析:直接互相倒就完了,BFS模 ...

  4. java基础之数据类型转换

    在写java程序时,经常会遇到需要数据类型转换,下面我们来介绍一些一些基本数据类型之间的转换. 1.int,folat,double,boolean,long 转换成字符串,其实很简单只需使用一个函数 ...

  5. (二)NUnit单元测试心得

    现在接着上次说到的内容,如何在项目中进行单元测试.由于做了一些调整,我上次发的内容,我这次也会重新发一次,请认真看看. 一.软件开发过程中存在的问题(没有使用单元测试的情况下) 难于定位bug的位置 ...

  6. 远程调试树莓PI

    非官方 参考  http://linuxtortures.blogspot.jp/2012/06/cross-compiling-and-cross-debugging-c.html 注意: 建立 / ...

  7. Matlab GUI界面

    做SVD的时候,看学姐的demo,用到了matlab的GUI,感兴趣就自己学了一下: 从简单的例子说起吧. 创建Matlab GUI界面通常有两种方式: 1,使用 .m 文件直接动态添加控件     ...

  8. window2008 64位系统没有office组件问题分析及解决

    服务器是windows server2008 64位系统, 我的系统需要用到Microsoft.Office.Interop.Excel组件 在上传Excel单据遇到错误:检索 COM 类工厂中 CL ...

  9. inter

    网卡不稳定的罪魁祸首   近期新上的DB SERVER服务器,在压测中发现网卡很不稳定,压力测试刚刚进行十几分钟后,服务器反应就变得非常慢,PING的时候经常丢包而且SSH连接也时断时 续.刚开始以为 ...

  10. HDU 3436--Queue-jumpers (树状数组 or Splay Tree)

    树状数组这个真心想了好久,还是没想出来 %%% www.cppblog.com/Yuan/archive/2010/08/18/123871.html 树状数组求前缀和大于等于k的最大值,第一次看到这 ...