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;
}