方法一:
-(UIImage *)clipImageFromImage:(UIImage *)orgImage Rect:(CGRect)clipRect{
CGImageRef imageRef = orgImage.CGImage;
CGImageRef subImageRef = CGImageCreateWithImageInRect(imageRef, clipRect);
CGSize size;
size = clipRect.size;
UIGraphicsBeginImageContext(size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextDrawImage(context, clipRect, subImageRef);
UIImage* clipImage = [UIImage imageWithCGImage:subImageRef];
CGImageRelease(subImageRef);
UIGraphicsEndImageContext();
return clipImage;
}
self.view.frame = CGRectMake(0, 0, 68, 53);//设置图片的大小
UIImageView *bgImg = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 68, 53)];//设置图片的背景图片
bgImg.image = [UIImage imageNamed:@"1.png"];
[self.view addSubview:bgImg];
[bgImg release];
if(lab == nil)
lab = [[UILabel alloc] initWithFrame:CGRectMake(0, 20, 68, 30)];//设置图片上面的文字显示
lab.textAlignment = UITextAlignmentCenter;
lab.textColor = [UIColor blackColor];
lab.backgroundColor = [UIColor clearColor];
lab.text = [[titleArray objectAtIndex:i] objectAtIndex:0];
[self.view addSubview:lab];
UIGraphicsBeginImageContext(self.view.bounds.size);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *aImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData *imageData = UIImagePNGRepresentation(aImage);
UIImage *img = [UIImage imageWithData:imageData];//生成的图片
方法三:
+ (UIImage *)captureWithView:(UIView *)view
{
// 1.开始上下文
UIGraphicsBeginImageContextWithOptions(view.frame.size, NO, 0.0);
// 2.将view的layer渲染到上下文
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
// 3.取出图片
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
// 4.结束上下文
UIGraphicsEndImageContext();
return newImage;
}
方法四:(生产图片并保存到相册)
- UIImage* layerImage = nil;
- CGSize layerSize = self.contentScrollView.frame.size;
- UIGraphicsBeginImageContextWithOptions(layerSize, NO, 2.0);
- [self.contentScrollView.layer renderInContext:UIGraphicsGetCurrentContext()];
- layerImage = UIGraphicsGetImageFromCurrentImageContext();
- UIGraphicsEndImageContext();
- UIImageWriteToSavedPhotosAlbum(layerImage, nil, nil, nil);
//将image1拼接到image2上
- (UIImage *)addImage:(UIImage *)image1 toImage:(UIImage *)image2
{
@autoreleasepool {
CGSize size;
if (image1.size.width > image2.size.width) {
size = CGSizeMake(image1.size.width, image1.size.height+image2.size.height);
} else {
size = CGSizeMake(image2.size.width, image1.size.height+image2.size.height);
}
UIGraphicsBeginImageContext(size);
// Draw image1
[image1 drawInRect:CGRectMake(image1.size.width > image2.size.width?0:(image2.size.width-image1.size.width)/2, image2.size.height, image1.size.width, image1.size.height)];
// Draw image2
[image2 drawInRect:CGRectMake(image1.size.width > image2.size.width?(image1.size.width-image2.size.width)/2:0, 0, image2.size.width, image2.size.height)];
UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return resultingImage;
}
}
//图片缩放
- (UIImage *)convertImage:(UIImage *)origImage scope:(CGFloat)scope
{
UIImage *image = nil;
CGSize size = origImage.size;
if (size.width <= scope && size.height <= scope) {
// do nothing
image = origImage;
} else {
CGFloat length = size.width;
if (size.width < size.height) {
length = size.width;
}
CGFloat f = scope/length;
CGSize newSize = CGSizeMake(size.width*f, size.height*f);
//
UIGraphicsBeginImageContext(newSize);
// Tell the old image to draw in this new context, with the desired
// new size
[origImage drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
// Get the new image from the context
image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
}
return image;
}
//将webView上面的内容转化为图片
- (UIImage *)webContentImage{
CGSize boundsSize = web.bounds.size;
CGFloat boundsWidth = web.bounds.size.width;
CGFloat boundsHeight = web.bounds.size.height;
CGPoint offset = web.scrollView.contentOffset;
[web.scrollView setContentOffset:CGPointMake(0, 0)];
CGFloat contentHeight = web.scrollView.contentSize.height;
NSMutableArray *images = [NSMutableArray array];
while (contentHeight > 0) {
UIGraphicsBeginImageContext(boundsSize);
视图生产界面,图片拼接,缩放处理
[web.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[images addObject:image];
CGFloat offsetY = web.scrollView.contentOffset.y;
[web.scrollView setContentOffset:CGPointMake(0, offsetY + boundsHeight)];
contentHeight -= boundsHeight;
}
[web.scrollView setContentOffset:offset];
UIGraphicsBeginImageContext(web.scrollView.contentSize);
[images enumerateObjectsUsingBlock:^(UIImage *image, NSUInteger idx, BOOL *stop) {
[image drawInRect:CGRectMake(0, boundsHeight * idx, boundsWidth, boundsHeight)];
}];
UIImage *fullImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return fullImage;
}