I am taking screenshot image from currentview.but i want to set frame….don't want to convert fullview as image.I gave frame size..but it takes always Image as fullview..any help please?
CGRect rectt = CGRectMake(100, 150,150,200);
UIGraphicsBeginImageContext(rectt.size);
[self.layer开发者_如何学运维 renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageView *imgView = [[UIImageView alloc] initWithFrame:rectt];
try to use this subClass:
// code to use the capture:
// in .h : #import "CaptureView.h"
CaptureView *cloneView = [[CaptureView alloc] initWithView:scrollView ];
[scrollView addSubview:cloneView];
with this files code
for 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
for 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
quartz might help you... look at creating image from part of image.... its not a direct solution to your question, but i think you'll be able to tweak it to fit your needs..
精彩评论