今天写一些 有关iOS 多图片组合 成一张图片的问题。保持原像素不变

1.要求:服务器给一张图片模板,要在模版上镂空,然后添加一些别的图片,然后组合成一张图,这个模版的像素 不是固定的,有可能比 当前手机屏幕大。所以,在组合截图的时候,有一定的要求。

贴代码:

 1 /**
 2  *  组合图片   imgVC_bg :模版image存放的uiimageview    , array_imageView 镂空图片视图,double_proportion:模版图片放大后 和 当前屏幕宽或高的比例
 3  */
 4 #pragma makr -组合图片
 5 -(void )SaveImageViewWithMoBan
 6 {
 7     UIGraphicsBeginImageContext(imgVC_bg.image.size);//截取图片内容的大小,这里为了保证像素是原来像素,一定要用image的size
 8
 9     [imgVC_bg.image drawInRect:CGRectMake(0, 0, imgVC_bg.image.size.width, imgVC_bg.image.size.height)];//不用说了,draw的时候也是一样
10     for (UIImageView *imgvc in array_imageView) {//循环 draw。这里是除以比例,这里的偏移量原本乘了比列,现在要还原成本身的大小,肯定是除以比例啦
11         UIImage *img=imgvc.image;
12         [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)];
13
14     }      //重新创建一个图片,图片的大小一定要是原模版图的大小
15     CGImageRef NewMergeImg = CGImageCreateWithImageInRect(UIGraphicsGetImageFromCurrentImageContext().CGImage,
16                                                           CGRectMake(0, 0, imgVC_bg.image.size.width, imgVC_bg.image.size.height));
17     UIGraphicsEndImageContext();
18
19     [imgVC_bg removeFromSuperview];
20     {
21         UIImage *img=[UIImage imageWithCGImage:NewMergeImg];
22         UIImageView *imgvc=[[UIImageView alloc]initWithFrame:CGRectMake(0, 64, self.view.frame.size.width, self.view.frame.size.height-64)];
23         [imgvc setImage:img];      //打印原模版图的size,看是否有变
24         NSLog(@"img_width=%lf img_height=%lf",img.size.width,img.size.height);
25         [vContainer addSubview:imgvc];
26     }
27     [kAPPDELEGATE.navigationController popViewControllerAnimated:YES];
28     [[NSNotificationCenter defaultCenter]postNotificationName:@"EditImage" object:[UIImage imageWithCGImage:NewMergeImg] userInfo:nil];
29 }
时间: 2024-11-29 09:13:28

今天写一些 有关iOS 多图片组合 成一张图片的问题。保持原像素不变的相关文章

iOS开发-图片查看(ScrollView+UIPageControl)

上周没事写了一个简单的图片查看,上次的查看只用到了一个UIImageView,不断的替换背景图片,实现图片之间的切换.通过ScrollView可以很简单的是实现图片之间的查看,设置setPagingEnabled通过坐标,宽度的设置,可以简单实现一个图片的简单分页查看显示,当然如果你有需求说需要进行所谓的无限循环,在开始和结束的时候的设置一下事件,常用的新闻客户端,图片新闻查看的时候很少有进行最后的时候跳到第一页,一般都是最后的时候都是推荐相关内容,多说了两句,开始吧: ScrollView图片

IOS 给图片添加水印(文字)

有时候上传图片要加唯一标识,简单的就是添加一个水印.这里水印我们讲文字,可以是当前系统时间.坐标.地理位置等 原理就是把一个字符串写到图片上,并且字(font)的大小由图片大小控制. 以下是封装好的一个类方法: //NavView.m + (UIImage *) addText:(UIImage *)img text:(NSString *)mark { int w = img.size.width; int h = img.size.height; UIGraphicsBeginImageCo

android/IOS常用图片上传的两种方式

android/IOS常用图片上传的两种方式: 1.上传到服务器的文件服务器(FileServer) 原理:上传到文件服务器的方式是先在服务器端搭建文件服务器,配置好路径(url),该路径是我们待会上传图片的路径,配置成功后便通过http+post的模式上传到文件服务器,同时文件服务器将返回一个图片ID,这个ID就是图片的唯一标识,并将该ID写入数据库保存,当需要下载该图片时只需要将此ID带上即可. 两个核心问题: (1)服务端:配置FileServer,并写处理响应上传图片的代码,这个值得去网

麦子学院ios笔记:IOS把图片缓存到本地的几种方法

把ios的图片缓存到本地的方法有几种?现在来看看学生在麦子学院学习ios开发的笔记中有讲到哪几种方法呢? <code>把图片缓存到本地,在很多场景都会用到,如果是只储存文字信息,那建一个plist文件,或者数据库就能很方便的解决问题,但是如果存图片到沙盒就没那么方便了.这里介绍两种保存图片到沙盒的方法. </code> 一.把图片转为base64的字符串存到数据库中或者plist文件中,然后用到的时候再取出来 <code class="hljs" obje

写了一个ios缓存模块,非常方便好用,欢迎帮忙加星~

写了一个ios磁盘缓存的模块,基于ISDishCache,添加文件校验,相同的文件只会缓存一次,采用了引用计数的方式对文件进行淘汰,之前的按文件访问时间进行淘汰会对经常使用的文件造成误删,使用很方便,一般用到就两个方法cacheObejct和objectForKey,将key和要缓存的文件放进去就可以了,地址https://github.com/abbothzhang/ZHCache,欢迎使用,欢迎帮忙加星~~~

IOS把图片做成圆形效果

利用CAShapeLayer可以制作出任意的几何图形,把它作为UIImageView的遮罩,达到把图片做成圆形效果. imgView = [[UIImageView alloc]initWithFrame:CGRectMake(10, 35, 80, 80)]; imgView.image = [UIImage imageNamed:@"ma.jpg"]; UIBezierPath* path = [UIBezierPath bezierPathWithArcCenter:CGPoin

iOS 把图片存到相册中

把图片存到相册中 -(void)savaPicAction{ UIImageWriteToSavedPhotosAlbum(_imageView.image, nil, nil, nil); UIAlertView * alert = [[UIAlertView alloc] initWithTitle:nil message:@"保存成功" delegate:self cancelButtonTitle:nil otherButtonTitles:@"确定", n

iOS多图片下载

iOS多图片下载.在cell里面下载图片.做了缓存优化. (app.icon是图片地址) // 先从内存缓存中取出图片 UIImage *image = self.images[app.icon]; if (image) { // 内存中有图片 cell.imageView.image = image; } else { // 内存中没有图片 // 获得Library/Caches文件夹 NSString *cachesPath = [NSSearchPathForDirectoriesInDo

写个js动态调整图片宽高 (原创)

<body style="TEXT-ALIGN: center;"> <div id="testID" style="background:red;MARGIN-RIGHT: auto; MARGIN-LEFT: auto; width:173;height:184"> <img src="http://e.hiphotos.baidu.com/image/pic/item/024f78f0f736afc3