SDWebImage (5.1.0)UIImage+Transf

2019-08-28  本文已影响0人  charlotte2018

UIImage+Transform.h这个分类提供了对image的形变处理

- (void)testUIImageTransform{
    
    //https://sdwebimage.github.io/Categories/UIImage(Transform).html
    
    UIImageView *imageView = [[UIImageView alloc]init];
    imageView.backgroundColor = [UIColor greenColor];
    imageView.frame = CGRectMake(0, 0, 200, 200);
    imageView.center = self.view.center;
    [self.view addSubview:imageView];
    /*图像几何
    -sd_resizedImageWithSize:scaleMode:
    -sd_croppedImageWithRect:
    -sd_roundedCornerImageWithRadius:corners:borderWidth:borderColor:
    -sd_rotatedImageWithAngle:fitSize:
    -sd_flippedImageWithHorizontal:vertical:
    
    UIImage *image = [UIImage imageNamed:@"dog.jpg"];
    
    //返回从此图像调整大小的新图像。您可以指定比图像大小更大或更小的尺寸。将使用缩放模式更改图像内容。
    //image = [image sd_resizedImageWithSize:CGSizeMake(100, 300) scaleMode:SDImageScaleModeAspectFill];
    
    //返回从此图像裁剪的新图像。
    image = [image sd_croppedImageWithRect:CGRectMake(0, 0, 300, 300)];
    
    //使用给定的角半径和角来舍入新图像。
    image = [image sd_roundedCornerImageWithRadius:200 corners:UIRectCornerAllCorners borderWidth:5 borderColor:[UIColor yellowColor]];
    
    //返回一个新的旋转图像(相对于中心)。逆时针旋转弧度.⟲
    //是:新图像的大小扩展到适合所有内容。否:图像的大小不会改变,内容可能会被剪裁。
    image = [image sd_rotatedImageWithAngle:0.5 fitSize:YES];
    
    //返回新的水平(垂直)翻转图像。
    image = [image sd_flippedImageWithHorizontal:NO vertical:YES];
    
    imageView.image = image;
     
    */
    
    /*
     图像混合
    -sd_tintedImageWithColor:
    -sd_colorAtPoint:
    -sd_colorsWithRect:
     */
    //UIImage *image = [UIImage imageNamed:@"dog.jpg"];
    
    //返回具有给定颜色的着色图像。这实际上使用当前图像和色调颜色的alpha混合。
    //image = [image sd_tintedImageWithColor:[UIColor colorWithWhite:0 alpha:0.8]];
    //imageView.image = image;
    
    
    //返回指定位置的像素颜色
//    UIColor *color = [image sd_colorAtPoint:CGPointMake(300, 300)];
    
    //返回指定矩形的像素颜色数组
    //NSArray *colors = [image sd_colorsWithRect:CGRectMake(100, 200, 300, 200)];
    //imageView.backgroundColor = colors.firstObject;
    
    

    
    /*
     图像效果
     -sd_blurredImageWithRadius:
     -sd_filteredImageWithFilter:
     */
    UIImage *image = [UIImage imageNamed:@"dog.jpg"];
    
    //返回应用模糊效果的新图像。
    //模糊半径为0表示没有模糊效果。
//    image = [image sd_blurredImageWithRadius:40];
    
    //返回应用CIFilter的新图像。使用CIFilter实现滤镜效果
    //https://blog.csdn.net/u011369424/article/details/52862560
    //1、先想办法弄到一个图像(CIImage*)
    CIImage* oldImg = [[CIImage alloc] initWithImage:image];
    //2、创建一个CIFilter*对象
    CIFilter* filter = [CIFilter filterWithName:@"CICircularWrap"];
    //如果用下面这个方法初始化,3、4、5部都可以省略
    //CIFilter* filter = [CIFilter filterWithName:@"CICircularWrap" keysAndValues:@"inputImage",oldImg, nil];
    //3、设置默认参数
    [filter setDefaults];
    //4、设置要处理的图像
    [filter setValue:oldImg forKey:@"inputImage"];
    
    image = [image sd_filteredImageWithFilter:filter];
    
    imageView.image = image;
    
}


demo 地址

https://github.com/yinbowang/SDWebImageStudyDemo.git

上一篇下一篇

猜你喜欢

热点阅读