美文网首页iOS开发
iOS - 图像处理

iOS - 图像处理

作者: Gold_xiaohui | 来源:发表于2017-11-24 18:55 被阅读0次

    图像处理函数

    //1.生成背景色为color的图片方法
    + (UIImage*) GetImageWithColor:(UIColor*)color andHeight:(CGFloat)height;
    
    //2.图片剪裁
    + (UIImage *)clipWithImageRect:(CGRect)clipRect clipImage:(UIImage *)clipImage;
    
    //3.图片压缩
    + (UIImage *)compressImagewithImage:(UIImage *)image;
    + (UIImage *)imageWithImage:(UIImage*)image scaledToSize:(CGSize)newSize;
    

    具体代码

    1.生成背景色为color的图片方法

    + (UIImage*) GetImageWithColor:(UIColor*)color andHeight:(CGFloat)height
    {
        CGRect r= CGRectMake(0.0f, 0.0f, 1.0f, height);
        UIGraphicsBeginImageContext(r.size);
        CGContextRef context = UIGraphicsGetCurrentContext();
        
        CGContextSetFillColorWithColor(context, [color CGColor]);
        CGContextFillRect(context, r);
        
        UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        
        return img;
    }
    

    2.图片剪裁

    //返回裁剪区域图片,返回裁剪区域大小图片
    +(UIImage *)clipWithImageRect:(CGRect)clipRect clipImage:(UIImage *)clipImage{
        UIGraphicsBeginImageContext(clipRect.size);
        
        [clipImage drawInRect:CGRectMake(-clipRect.origin.x,-clipRect.origin.y,clipImage.size.width *clipImage.scale,clipImage.size.height *clipImage.scale)];
        
        UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
        
        UIGraphicsEndImageContext();
        
        return newImage;
    }
    
    

    3.图片压缩

    1.//图片压缩(像素)
    +(UIImage *)compressImagewithImage:(UIImage *)image{
            
        //图片压缩(像素)
        NSData *newImageData = nil;
        newImageData = UIImageJPEGRepresentation(image, 0.0);
        UIImage *newImage = [UIImage imageWithData:newImageData];
        
        UIImage *newImage2 = [[UIImage alloc]init];
        
    //通过剪切压缩把图片压缩到1m以下
       //    if ((float)newImageData.length/1024 > 10000) {
    //        newImage2 = [self imageWithImage:newImage scaledToSize:CGSizeMake(newImage.size.width/6, newImage.size.height/6)];
    //    }else if ((float)newImageData.length/1024 > 1500){
    //        newImage2 = [self imageWithImage:newImage scaledToSize:CGSizeMake(newImage.size.width/4, newImage.size.height/4)];
    //    }else if ((float)newImageData.length/1024 > 1024){
    //        newImage2 = [self imageWithImage:newImage scaledToSize:CGSizeMake(newImage.size.width/2, newImage.size.height/2)];
    //    }else{
    //        newImage2 = newImage;
    //    }
    
        return newImage2;
    }
    
    2.//图片压缩(尺寸)
    //图片压缩(尺寸)
    + (UIImage *)imageWithImage:(UIImage*)image scaledToSize:(CGSize)newSize{
        UIGraphicsBeginImageContext(newSize);
        [image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
        UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        return newImage;
        
    }
    

    相关文章

      网友评论

        本文标题:iOS - 图像处理

        本文链接:https://www.haomeiwen.com/subject/fxbfbxtx.html