图片捕杀 保持高不变 压缩
图片捕捉 保持高不变 压缩
UIImage * image = [self captureScreenInRect:viewController.view]; float ratio = image.size.width/image.size.height; image = [self resizeImage:image size:CGSizeMake(height*ratio, height)]; - (UIImage *) captureScreenInRect:(UIView *) view { CALayer *layer; layer = view.layer; UIGraphicsBeginImageContext(view.bounds.size); CGContextClipToRect (UIGraphicsGetCurrentContext(),view.frame); [layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage *screenImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return screenImage; } - (UIImage*) resizeImage:(UIImage*)image size:(CGSize)size { if ([[UIScreen mainScreen] respondsToSelector:@selector(displayLinkWithTarget:selector:)] && ([UIScreen mainScreen].scale == 2.0)) { size = CGSizeMake(size.width*2, size.height*2); } UIGraphicsBeginImageContext(size); [image drawInRect:CGRectMake(0, 0, size.width, size.height)]; UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return newImage; }
如果是手机屏幕图捕捉和显示需要考虑屏幕 所以*2。但是如果相机拍照 然后裁剪上传没必要考虑*2