UIImage 图片处理:截图,缩放,设定大小,存储

1.等比率缩放

- (UIImage *)scaleImage:(UIImage *)image toScale:(float)scaleSize{
  UIGraphicsBeginImageContext(CGSizeMake(image.size.width * scaleSize, image.size.height * scaleSize);
  [image drawInRect:CGRectMake(0, 0, image.size.width * scaleSize, image.size.height * scaleSize)];
  UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext();
  UIGraphicsEndImageContext();
  return scaledImage;
}

2.自定长宽

- (UIImage *)reSizeImage:(UIImage *)image toSize:(CGSize)reSize{
  UIGraphicsBeginImageContext(CGSizeMake(reSize.width, reSize.height));
  [image drawInRect:CGRectMake(0, 0, reSize.width, reSize.height)];
  UIImage *reSizeImage = UIGraphicsGetImageFromCurrentImageContext();
  UIGraphicsEndImageContext();
  return reSizeImage;
}

3.处理某个特定View
只要是继承UIView的object 都可以处理
必须先import QuzrtzCore.framework

-(UIImage*)captureView:(UIView *)theView{
  CGRect rect = theView.frame;
  UIGraphicsBeginImageContext(rect.size);
  CGContextRef context = UIGraphicsGetCurrentContext();
  [theView.layer renderInContext:context];
  UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
  UIGraphicsEndImageContext();
  return img;
}

4.储存图片
储存图片这里分成储存到app的文件里和储存到手机的图片库里

  1. 储存到app的文件里
NSString *path = [[NSHomeDirectory()stringByAppendingPathComponent:@"Documents"]stringByAppendingPathComponent:@"image.png"];
[UIImagePNGRepresentation(image) writeToFile:pathatomically:YES];

把要处理的图片, 以image.png名称存到app home下的Documents目录里
2)储存到手机的图片库里(必须在真机使用,模拟器无法使用)

CGImageRef screen = UIGetScreenImage();
UIImage* image = [UIImage imageWithCGImage:screen];
CGImageRelease(screen);
UIImageWriteToSavedPhotosAlbum(image, self, nil, nil);
UIGetScreenImage(); // 原来是private(私有)api, 用来截取整个画面,不过SDK 4.0后apple就开放了

转载:http://blog.csdn.net/xuhuan_wh/article/details/6434055
SDWebImage:异步缓存加载网络图片 http://hao.jobbole.com/sdwebimage-ios/?utm_source=hao.jobbole.com&utm_medium=relatedResources

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容