图片处理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* 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;
}
-(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;
}
相关文章推荐
- 5+plus教程-1
- sql 的join on 和 where 区别
- Xcode真机测试could not find developer disk image解决方法
- 数据库 时间日期函数
- Hibernate注解映射sequence时出现无序增长问题+hibernate 映射 oracle ID自动增长:
- 【转】Jmeter Http请求界面解释
- zookeeper入门学习
- Android之Handler:实现计时器实例
- 找到一个数的所有字典序即字符串的全排列
- a particle filter (sequential Monte Carlo) and a Kalman filter
- BlockingQueue一些特性
- c++ 十进制、十六进制和BCD的相互转换
- iOS应用开发最佳实践:编写高质量的Objective-C代码
- mysql存储过程案例
- 测试过程之UT-IT-ST的区别
- 解决spring配置中的bean类型的问题:BeanNotOfRequiredTypeException
- 【转】Jmeter:图形界面压力测试工具
- 【转】用Jmeter进行接口压力测试的步骤
- Effective C++ 条款10
- 集合框架---TreeSet存储自定义对象