您的位置:首页 > 产品设计 > UI/UE

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