[英]How to convert UIView as UIImage?
我正在从currentview中截取屏幕截图。但我想设置框架...。不想将全视图转换为图像。我给了框架尺寸..但它总是需要图像作为全视图..有什么帮助吗?
CGRect rectt = CGRectMake(100, 150,150,200);
UIGraphicsBeginImageContext(rectt.size);
[self.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageView *imgView = [[UIImageView alloc] initWithFrame:rectt];
尝试使用这个子类:
// code to use the capture:
// in .h : #import "CaptureView.h"
CaptureView *cloneView = [[CaptureView alloc] initWithView:scrollView ];
[scrollView addSubview:cloneView];
用这个文件代码
对于CaptureView.h:
#import <UIKit/UIKit.h>
#import <QuartzCore/QuartzCore.h>
#import <QuartzCore/CALayer.h>
@interface CaptureView : UIView {
@private
UIImage *_imageCapture;
}
@property(nonatomic, retain) UIImage *imageCapture;
// Init
- (id)initWithView:(UIView *)view;
@end
对于CaptureView.m:
#import "CaptureView.h"
// Private
@interface CaptureView (/* Private */)
- (void)settingImageFromView:(UIView *)view;
@end
// Public
@implementation CaptureView
@synthesize imageCapture = _imageCapture;
// Standard
- (id)initWithFrame:(CGRect)frame {
if ((self = [super initWithFrame:frame])) {
// Initialization code.
}
return self;
}
// Init
- (id)initWithView:(UIView *)view {
// if ((self = [super initWithFrame:[view frame]])) {
if ((self = [super initWithFrame: CGRectMake(0, 0,150,200)])) {
// Initialization code.
[self settingImageFromView:view];
}
return self;
}
- (void)settingImageFromView:(UIView *)view {
// CGRect rect = [view bounds];
CGRect rect = CGRectMake(100, 150,150,200);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
[view.layer renderInContext:context];
UIImage *imageCaptureRect;
imageCaptureRect = UIGraphicsGetImageFromCurrentImageContext();
_imageCapture = imageCaptureRect;
// _imageCapture = UIGraphicsGetImageFromCurrentImageContext();
// [_imageCapture retain];
UIGraphicsEndImageContext();
}
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect {
// Drawing code.
CGPoint accPoint = CGPointMake(0,0);
[_imageCapture drawAtPoint:accPoint];
}
- (void)dealloc {
[_imageCapture release];
[super dealloc];
}
@end
石英可以帮助你...看看从图像的一部分创建图像 ....它不是你的问题的直接解决方案,但我认为你将能够调整它以满足您的需求..
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.