得到UIImage的方法
2015-06-10 16:39
453 查看
1----------------
//导入头文件
#import QuartzCore/QuartzCore.h
//将整个self.view大小的图层形式创建一张图片image UIGraphicsBeginImageContext(self.view.bounds.size);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage*image=UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
//然后将该图片保存到图片图
UIImageWriteToSavedPhotosAlbum(image,self,nil,nil);
2---------------------
+ (UIImage *)imageFromColor:(UIColor *)color
{
CGRect rect =
CGRectMake(0,0,
1.0f, 1.0f);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context =UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [colorCGColor]);
CGContextFillRect(context, rect);
UIImage *img =UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return img;
}
3--------------------
+ (UIImage*)imageFromView:(UIView*)view
{
//开始绘图,下面方法,第一个参数表示区域大小。第二个参数表示是否是非透明的。如果需要显示半透明效果,需要传NO,否则传YES。第三个参数就是屏幕密度了
UIGraphicsBeginImageContextWithOptions(CGSizeMake(view.frame.size.width,
view.frame.size.height),
YES,
[UIScreenmainScreen].scale);
//将view上的子view加进来
[view.layerrenderInContext:UIGraphicsGetCurrentContext()];
// CGContextRestoreGState(UIGraphicsGetCurrentContext());
//开始生成图片
UIImage* image =UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
4------------
去色功能的实现(图片灰色显示)
-(UIImage *)grayImage:(UIImage *)sourceImage
{
int bitmapInfo = kCGImageAlphaNone;
int width = sourceImage.size.width;
int height = sourceImage.size.height;
CGColorSpaceRef colorSpace =
CGColorSpaceCreateDeviceGray();
CGContextRef context =
CGBitmapContextCreate (nil,
width,
height,
8, // bits per component
0,
colorSpace,
bitmapInfo);
CGColorSpaceRelease(colorSpace);
if (context == NULL) {
return nil;
}
CGContextDrawImage(context,
CGRectMake(0,
0, width, height), sourceImage.CGImage);
UIImage *grayImage = [UIImage
imageWithCGImage:CGBitmapContextCreateImage(context)];
CGContextRelease(context);
return grayImage;
}
//导入头文件
#import QuartzCore/QuartzCore.h
//将整个self.view大小的图层形式创建一张图片image UIGraphicsBeginImageContext(self.view.bounds.size);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage*image=UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
//然后将该图片保存到图片图
UIImageWriteToSavedPhotosAlbum(image,self,nil,nil);
2---------------------
+ (UIImage *)imageFromColor:(UIColor *)color
{
CGRect rect =
CGRectMake(0,0,
1.0f, 1.0f);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context =UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [colorCGColor]);
CGContextFillRect(context, rect);
UIImage *img =UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return img;
}
3--------------------
+ (UIImage*)imageFromView:(UIView*)view
{
//开始绘图,下面方法,第一个参数表示区域大小。第二个参数表示是否是非透明的。如果需要显示半透明效果,需要传NO,否则传YES。第三个参数就是屏幕密度了
UIGraphicsBeginImageContextWithOptions(CGSizeMake(view.frame.size.width,
view.frame.size.height),
YES,
[UIScreenmainScreen].scale);
//将view上的子view加进来
[view.layerrenderInContext:UIGraphicsGetCurrentContext()];
// CGContextRestoreGState(UIGraphicsGetCurrentContext());
//开始生成图片
UIImage* image =UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
4------------
去色功能的实现(图片灰色显示)
-(UIImage *)grayImage:(UIImage *)sourceImage
{
int bitmapInfo = kCGImageAlphaNone;
int width = sourceImage.size.width;
int height = sourceImage.size.height;
CGColorSpaceRef colorSpace =
CGColorSpaceCreateDeviceGray();
CGContextRef context =
CGBitmapContextCreate (nil,
width,
height,
8, // bits per component
0,
colorSpace,
bitmapInfo);
CGColorSpaceRelease(colorSpace);
if (context == NULL) {
return nil;
}
CGContextDrawImage(context,
CGRectMake(0,
0, width, height), sourceImage.CGImage);
UIImage *grayImage = [UIImage
imageWithCGImage:CGBitmapContextCreateImage(context)];
CGContextRelease(context);
return grayImage;
}
相关文章推荐
- iOS UITableView的Section Footer添加按钮
- iOS UITableView的Section Footer添加按钮
- Android Bluetooth开发
- 详细解析BluetoothAdapter的详细api
- GRE的issue写作要求
- 在storyboard中的静态UITableView中拖入 UISearchBar and Search Display Controller出现的奇怪问题
- request response 编码设置
- IOS开发—UITableViewCell的四种类型
- rust map的使用:获取某个key对应的value,如果不存在就插入一个
- message queue & event loop
- Bluemix云平台实践:使用Bluemix Labs Catalog来创建应用(2)
- Uva - 133 - The Dole Queue
- Uva - 133 - The Dole Queue
- oem 启动报错 OC4J Configuration issue. notfound
- Build 2015 Beijing & Windows 10 China Geek Challenge
- UIAutomator在AndroidStudio中的使用
- UIView 实现反转效果
- 自定义UI控件实现跑马灯效果
- UIViewController全部API的学习。
- 用YUI Compressor压缩SeaJS单独模块文件