Objective c 如何根据图像大小缩放图像视图大小(高度)
Posted
技术标签:
【中文标题】Objective c 如何根据图像大小缩放图像视图大小(高度)【英文标题】:Objective c How to scale image view size (height) as per image size 【发布时间】:2013-09-13 06:59:42 【问题描述】:在我的应用程序中,我使用图像视图来显示从数据库获取的图像
在数据库中图片有不同的尺寸,
现在我添加了带有框架(10、10、300、220)的图像视图。
我需要根据图像大小调整图像视图的框架,就像 Aspect Fit.
我知道 Aspect fit 可以调整大小,但它可以根据高度比改变宽度,
但我需要根据宽度比例增加高度
我需要宽度始终为 300,固定但需要更改高度
例如:
if image size is 500x1000 i need to resize imageview as 300x600
if image size is 400x600 i need to resize imageview as 300x450
【问题讨论】:
【参考方案1】:您可以使用以下符合您要求的代码sn-p
-(UIImage *)adjustImageSizeWhenCropping:(UIImage *)image
float actualHeight = image.size.height;
float actualWidth = image.size.width;
float ratio=300/actualWidth;
actualHeight = actualHeight*ratio;
CGRect rect = CGRectMake(0.0, 0.0, 300, actualHeight);
// UIGraphicsBeginImageContext(rect.size);
UIGraphicsBeginImageContextWithOptions(rect.size, NO, 1.0);
[image drawInRect:rect];
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return img;
【讨论】:
【参考方案2】:resizedImage = [self imageWithImage:originalImage scaledToSize:CGSizeMake(45,45)];
self.imageView.image = resizedImage;
- (UIImage*)imageWithImage:(UIImage*)image scaledToSize:(CGSize)newSize
UIGraphicsBeginImageContext(newSize);
[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
【讨论】:
以上是关于Objective c 如何根据图像大小缩放图像视图大小(高度)的主要内容,如果未能解决你的问题,请参考以下文章
使用 vImageScale_ARGB8888 缩放图像时图像质量受到影响 - Cocoa Objective C