您的位置:首页 > 其它

图片处理view - 成图,

2015-11-20 15:21 183 查看
方法一:

-(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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: