您的位置:首页 > 产品设计 > UI/UE

UIImageView圆角,自适应图片宽高比例,图片拉伸,缩放比例和图片缩微图

2016-03-31 20:22 555 查看
/*

设置圆角,通过layer中的cornerRadius和masksToBounds即可。

自适应图片宽高比例。通过UIViewContentModeScaleAspectFit设置,注意这个UIImageView的frame就不是init中的数据了。

同样的UIImage图片放入不同frame中的UIImageView就可以实现比例缩放了。只是UIImageView的大小改变了,

*/

UIImage* image = [UIImage imageNamed:@"back2.jpg"];

UIImageView* imageView1 = [[[UIImageView alloc] initWithImage:image] autorelease];

imageView1.frame = CGRectMake(0, 0, 300, 200);

imageView1.center = CGPointMake(150, 200);

//设置圆角

imageView1.layer.cornerRadius = 8;

imageView1.layer.masksToBounds = YES;

//自适应图片宽高比例

imageView1.contentMode = UIViewContentModeScaleAspectFit;

[self.view addSubview:imageView1];

//拉伸图片

CGFloat capWidth = image.size.width / 2;

CGFloat capHeight = image.size.height / 2;

UIImage* stretchableImage = [image stretchableImageWithLeftCapWidth:capWidth topCapHeight:capHeight];

UIImageView* imageView3 = [[[UIImageView alloc] initWithImage:stretchableImage] autorelease];

imageView3.frame = CGRectMake(0, 0, 300, 200);

imageView3.center = CGPointMake(150, 200);

[self.view addSubview:imageView3];

//改变frame改变

UIImageView* imageView4 = [[[UIImageView alloc] initWithImage:image] autorelease];

imageView4.frame = CGRectMake(0, 0, 300/2, 200/2);

imageView4.center = CGPointMake(150, 200);

[self.view addSubview:imageView4];

//缩微图

- (UIImage *)generatePhotoThumbnail:(UIImage *)image {

// Create a thumbnail version of the image for the event object.

CGSize size = image.size;

CGSize croppedSize;

CGFloat ratioX = 75.0;

CGFloat ratioY = 60.0;

CGFloat offsetX = 0.0;

CGFloat offsetY = 0.0;

// check the size of the image, we want to make it

// a square with sides the size of the smallest dimension

if (size.width > size.height) {

offsetX = (size.height - size.width) / 2;

croppedSize = CGSizeMake(size.height, size.height);

} else {

offsetY = (size.width - size.height) / 2;

croppedSize = CGSizeMake(size.width, size.width);

}

// Crop the image before resize

CGRect clippedRect = CGRectMake(offsetX * -1, offsetY * -1, croppedSize.width, croppedSize.height);

CGImageRef imageRef = CGImageCreateWithImageInRect([image CGImage], clippedRect);

// Done cropping

// Resize the image

CGRect rect = CGRectMake(0.0, 0.0, ratioX, ratioY); // 设置图片缩微图的区域((0,0),宽:75 高:60)

UIGraphicsBeginImageContext(rect.size);

[[UIImage imageWithCGImage:imageRef] drawInRect:rect];

UIImage *thumbnail = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

// Done Resizing

return thumbnail;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: