// UIView的类别,从view上截图
- (UIImage *)getImage {
UIGraphicsBeginImageContextWithOptions(CGSizeMake(150, 150), NO, 1.0); //NO,YES 控制是否透明
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()]; // view 可以改成任意的视图
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
// 生成后的image
return image;
}
// 根据给定得图片,从其指定区域截取一张新得图片
-(UIImage *)getImageFromImage{
//大图bigImage
//定义myImageRect,截图的区域
CGRect myImageRect = CGRectMake(70, 10, 150, 150);
UIImage* bigImage= [UIImage imageNamed:@"mm.jpg"];
CGImageRef imageRef = bigImage.CGImage;
CGImageRef subImageRef = CGImageCreateWithImageInRect(imageRef, myImageRect);
CGSize size;
size.width = 150;
size.height = 150;
UIGraphicsBeginImageContext(size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextDrawImage(context, myImageRect, subImageRef);
UIImage* smallImage = [UIImage imageWithCGImage:subImageRef];
UIGraphicsEndImageContext();
return smallImage;
}
一、修改当前图片的大小,newSize是新的size尺寸,这个方法帮助用户获取到更小的图片。
但是这个newSize的比例建议跟原图一样,不然图片就变形了。
- ( UIImage *)imageWithImageSimple:( UIImage *)image scaledToSize:( CGSize )newSize {
// Create a graphics image context
UIGraphicsBeginImageContext (newSize);
// Tell the old image to draw in this new context, with the desired
// new size
[image drawInRect : CGRectMake ( 0 , 0 ,newSize. width ,newSize. height )];
// Get the new image from the context
UIImage * newImage = UIGraphicsGetImageFromCurrentImageContext ();
// End the context
UIGraphicsEndImageContext ();
// Return the new image.
return newImage;
}