//将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;
}