iOS imageView图片处理

一,imageView  的contentMode 属性 

iOS imageView图片处理_第1张图片

但是 尽量 其中  UIViewContentModeScaleAspectFill 会保证图片比例不变,但是是填充整个ImageView的

但是 我使用的情况 比例严重不符合要求 所以 变形的非常明显

这个时候 关键代码就是

imageView.clipsToBounds = YES;

这里的clip是修剪的意思,bounds是边界的意思是,合起来就是:如果子视图的范围超出了父视图的边界,那么超出的部分就会被裁剪掉。  那么图片 就会按比例显示 尽管 图片不会显示全  这也是合理的吧

此时如果取出image,比如把image放在比较大的控件上,image内部大小是没有变化的,如果想把image真正的大小进行裁剪,用以下方法

二,对image的大小进行裁剪

#pragma mark - 缩略图

- (UIImage*) crop:(UIImage*)theImage{

// Get size of current image

CGSize size = [theImage size];

// Create rectangle that represents a cropped image

CGFloat desiredRatio = 1.0;

CGFloat croppedWidth = 0.0;

CGFloat croppedHeight = 0.0;

CGRect rect;

if (size.height/size.width > desiredRatio) {

croppedWidth = size.width;

croppedHeight = size.width * desiredRatio;

CGFloat difference = (size.height-croppedHeight)/2;

rect = CGRectMake(0.0, difference ,croppedWidth, croppedHeight);

}else if (size.height/size.width < desiredRatio) {

croppedHeight = size.height;

croppedWidth = size.height * desiredRatio;

CGFloat difference = (size.width-croppedWidth)/2;

rect = CGRectMake(difference,0.0  ,croppedWidth, croppedHeight);

}

else{

return theImage;

}

// Create bitmap image from original image data,

// using rectangle to specify desired crop area

CGImageRef imageRef = CGImageCreateWithImageInRect([theImage CGImage], rect);

UIImage *croppedImage = [UIImage imageWithCGImage:imageRef];

CGImageRelease(imageRef);

return croppedImage;

}

以上是按一比一进行裁剪,可按自己想要的大小进行裁剪。

你可能感兴趣的:(iOS imageView图片处理)