如何相对于原始图像大小比设置 UIimageview 宽度

Posted

技术标签:

【中文标题】如何相对于原始图像大小比设置 UIimageview 宽度【英文标题】:how to set UIimageview width with respect to the original image size ratio 【发布时间】:2012-10-25 13:41:37 【问题描述】:

在我的 iphone 应用程序中,我需要在图像视图中设置图像。

图像视图高度始终为 100 像素。

we need to set the width of the image view with respect to the original image scale ratio.

即假设图像的宽度 X 高度为 300x400(原始)(4x3)

我们显示的图像视图图像大小将是 75X100

图像的宽度 X 高度为 512x512(原始)(1x1)

我们显示的图像视图图像大小将是 100X100

图像的宽度 X 高度为 128 x 256(原始)(1x2)

我们显示的图像视图图像大小将是 50X100

in all those cases image view height 100pixel should be same, but the width need to varie with respect to the image ratio.

最后图像视图应该在视图的中心

如何实现

【问题讨论】:

【参考方案1】:

有几种方法可以实现这一目标。最简单的就是在Interface Builder中将image view上的缩放模式设置为Aspect Fill,或者

imageView.contentMode = UIViewContentModeScaleAspectFit;

第二种方法是计算图像的纵横比并设置宽度。比如:

UIImage *myImage = [UIImage imageNamed:@"MyImage"];
float aspectRatio = myImage.size.width / myImage.size.height;
float viewWidth = 100 * aspectRatio;

【讨论】:

【参考方案2】:

这取决于你的逻辑。 你可以得到UIImage的高度和宽度。

 UIImage *image = [UIImage imageNamed:@"anyImage.png"];
 float imageHeight = image.size.height;
 float imageWidth = image.size.width;

之后你可以计算imageViewWidth-。根据你的要求-

float value = imageHeight/100.0;
float iV_Width = imageWidth/value;

【讨论】:

以上是关于如何相对于原始图像大小比设置 UIimageview 宽度的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式更改条形按钮背景的图像大小?

如何获取裁剪图像相对于原始图像的坐标?

图像没有相对于父 div 正确调整自身大小

获取图像的压缩比

如何裁剪图像并从原始图像设置其裁剪范围

PHP GD imagejpeg:输出文件大小比原始文件大