今天写一些 有关iOS 多图片组合 成一张图片的问题。保持原像素不变
2015-08-07 16:22
369 查看
1.要求:服务器给一张图片模板,要在模版上镂空,然后添加一些别的图片,然后组合成一张图,这个模版的像素 不是固定的,有可能比 当前手机屏幕大。所以,在组合截图的时候,有一定的要求。
贴代码:
贴代码:
/** * 组合图片 imgVC_bg :模版image存放的uiimageview , array_imageView 镂空图片视图,double_proportion:模版图片放大后 和 当前屏幕宽或高的比例 */ #pragma makr -组合图片 -(void )SaveImageViewWithMoBan { UIGraphicsBeginImageContext(imgVC_bg.image.size);//截取图片内容的大小,这里为了保证像素是原来像素,一定要用image的size [imgVC_bg.image drawInRect:CGRectMake(0, 0, imgVC_bg.image.size.width, imgVC_bg.image.size.height)];//不用说了,draw的时候也是一样 for (UIImageView *imgvc in array_imageView) {//循环 draw。这里是除以比例,这里的偏移量原本乘了比列,现在要还原成本身的大小,肯定是除以比例啦 UIImage *img=imgvc.image; [img drawInRect:CGRectMake(imgvc.frame.origin.x/double_proportion,imgvc.frame.origin.y/double_proportion,imgvc.frame.size.width/double_proportion,imgvc.frame.size.height/double_proportion)]; } //重新创建一个图片,图片的大小一定要是原模版图的大小 CGImageRef NewMergeImg = CGImageCreateWithImageInRect(UIGraphicsGetImageFromCurrentImageContext().CGImage, CGRectMake(0, 0, imgVC_bg.image.size.width, imgVC_bg.image.size.height)); UIGraphicsEndImageContext(); [imgVC_bg removeFromSuperview]; { UIImage *img=[UIImage imageWithCGImage:NewMergeImg]; UIImageView *imgvc=[[UIImageView alloc]initWithFrame:CGRectMake(0, 64, self.view.frame.size.width, self.view.frame.size.height-64)]; [imgvc setImage:img]; //打印原模版图的size,看是否有变 NSLog(@"img_width=%lf img_height=%lf",img.size.width,img.size.height); [vContainer addSubview:imgvc]; } [kAPPDELEGATE.navigationController popViewControllerAnimated:YES]; [[NSNotificationCenter defaultCenter]postNotificationName:@"EditImage" object:[UIImage imageWithCGImage:NewMergeImg] userInfo:nil]; }
相关文章推荐
- iOS开发之保存照片到自己创建的相簿
- iOS开发之保存照片到系统相册(Photo Album)
- iOS 读书笔记-单元测试XCTest
- “iOS 推送通知”证书及测试:从创建到设置到运行
- GCD的介绍
- iOS设计模式——单例模式
- iOS 第八课 iOS开发常用尺寸
- iOS应用程序生命周期(前后台切换,应用的各种状态)详解
- iOS pch文件的创建
- OS X和iOS公共框架列表
- iOS 9应用开发教程之定制应用程序图标以及真机测试
- iOS 9应用开发教程之定制应用程序图标以及真机测试
- iOS后台抓取全局屏幕的实现
- Ios后台任务运行实现
- IOS数码测色计
- iOS ViewController生命周期
- IOS第三方框架集合
- item属性总结
- 枚举和字符串的相互转化
- iOS 8 Xcode6 设置Launch Image 启动图片<转>