iOS图片合成及修改图片灰度

来源:互联网 发布:mysql同步sqlserver 编辑:程序博客网 时间:2024/04/29 11:14

 

最近需要对图片进行处理因此搜了一下图片处理的函数,整理了一些简单易用的,归纳如下:


  //主图片(以它为背景进行合成):  

 UIImage *mainImg = [UIImage imageNamed:@"w"];

   //辅助图(合成到主图片上):        

UIImage *img = [UIImage imageNamed:@"black"];


   //合成后的图片

     UIImage *im = [self addImage:mainImg toImage:img];


#pragma mark--图片合成函数

- (UIImage *)drawImMainImage:(UIImage *)mainImage withImage:(UIImage *)image {

    UIGraphicsBeginImageContext(mainImage.size);

    

    // Draw mainImage

    [mainImage drawInRect:CGRectMake(00, mainImage.size.width, mainImage.size.height)];

    

    int h = image.size.height;

    int y = (mainImage.size.height - h)/2;

    

    // Draw image

    [image drawInRect:CGRectMake(0, y, image.size.width, image.size.height)];

    

    UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext();

    

    UIGraphicsEndImageContext();

    

    return resultingImage;

}


#pragma mark--处理图片变为灰度

- (UIImage *)modifyImageToGray:(UIImage *)image

{

    CGSize size = image.size;

    CGRect rect = CGRectMake(0.0f0.0f, image.size.width,

                             image.size.height);

    // Create a mono/gray color space

    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceGray();

    CGContextRef context = CGBitmapContextCreate(nil, size.width,

                                                 size.height80, colorSpace, kCGBitmapByteOrderDefault);

    CGColorSpaceRelease(colorSpace);

    // Draw the image into the grayscale context

    CGContextDrawImage(context, rect, [image CGImage]);

    CGImageRef grayscale = CGBitmapContextCreateImage(context);

    CGContextRelease(context);

    // Recover the image

    UIImage *img = [UIImage imageWithCGImage:grayscale];

    CFRelease(grayscale);

    return img;

}





0 0
原创粉丝点击