注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

尐鬼じ☆ve伱

和你在一起的日子

 
 
 

日志

 
 

图片切割 ios  

2012-10-16 10:55:17|  分类: ios 开发 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
适合图片处理应用里为图片添加百叶窗效果,或者拼图游戏里使用。处理方法为:

    +(NSDictionary*)SeparateImage:(UIImage*)image ByX:(int)x andY:(int)y cacheQuality:(float)quality;

    NSDictionary*:返回字典,UIImageView格式,不仅含有 Image 还含有 Rect。
    image: 图片资源,要求为UIImage格式。x: y:分别表示要切成几行和列,最小值为1。
    quality:处理后保存的小图片的质量。(0,1]有效,小于或为0不保存,大于1时会被强强制为1。

    切割后的小图片保存位置为 Homedirectory, 可以通过 nslog(@"%@",NSHomedirectory());

 -(NSDictionary*)SeparateImage:(UIImage*)image ByX:(int)x andY:(int)y cacheQuality:(float)quality
{

//kill errors
if (x<1) {
NSLog(@"illegal x!");
return nil;
}else if (y<1) {
NSLog(@"illegal y!");
return nil;
}
if (![image isKindOfClass:[UIImage class]]) {
NSLog(@"illegal image format!");
return nil;
}

//attributes of element
float _xstep=image.size.width*1.0/y;
float _ystep=image.size.height*1.0/x;
NSMutableDictionary*_mutableDictionary=[[[NSMutableDictionary alloc]initWithCapacity:1]autorelease];
//NSArray*_array=[imageName componentsSeparatedByString:@"."];
//NSString*prefixName=[_array objectAtIndex:0];
NSString*prefixName=@"win";

//snap in context and create element image view
for (int i=0; i<x; i++) 
{
for (int j=0; j<y; j++)
{
CGRect rect=CGRectMake(_xstep*j, _ystep*i, _xstep, _ystep);
CGImageRef imageRef=CGImageCreateWithImageInRect([image CGImage],rect);
UIImage* elementImage=[UIImage imageWithCGImage:imageRef];
UIImageView*_imageView=[[UIImageView alloc] initWithImage:elementImage];
_imageView.frame=rect;
NSString*_imageString=[NSString stringWithFormat:@"%@_%d_%d.jpg",prefixName,i,j];
[_mutableDictionary setObject:_imageView forKey:_imageString];
//CFRelease(imageRef);
if (quality<=0) 
{
continue;
}
quality=(quality>1)?1:quality;
            
            NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
NSString*_imagePath=[path stringByAppendingPathComponent:_imageString]; NSData* _imageData=UIImageJPEGRepresentation(elementImage, quality);
[_imageData writeToFile:_imagePath atomically:YES];
}
}
//return dictionary including image views
NSDictionary *_dictionary=_mutableDictionary;
return _dictionary;
}
  评论这张
 
阅读(1007)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017