【问题标题】:Resize image to fit proportions调整图像大小以适应比例
【发布时间】:2012-01-13 16:57:10
【问题描述】:

在我的应用程序设计中,我为来自远程服务器的图像设置了一个方形空间。但是,有时图像是横向矩形而不是正方形。

我不想裁剪图像,而是将其缩小到足以适应正方形约束的程度,然后用一些背景颜色填充剩余空间,也许是白色。

【问题讨论】:

    标签: iphone ios uikit


    【解决方案1】:

    UIImageViewcontentMode 设置为UIViewContentModeScaleAspectFit

    【讨论】:

      【解决方案2】:

      我不知道这是否有帮助,但我使用它来调整视图的大小以匹配图像。它采用提供的矩形,并对其进行修剪以匹配图像。然后可以将返回的 CGRect 应用于视图。我使用它是为了给图像添加阴影(如果视图与图像不完全匹配,这看起来是错误的)。

      - (CGRect) resizeCGRect:(CGRect)rect toImage:(UIImage *)image{
      CGSize size = rect.size;
      CGSize iSize = image.size;
      if (iSize.width > iSize.height){
          if (iSize.width / iSize.height > size.width / size.height)
              size.height = size.width * (iSize.height / iSize.width);                    
          else
              size.width = size.height * (iSize.width / iSize.height);
      } else {
          if (iSize.height / iSize.width > size.height / size.width) 
              size.width = size.height * (iSize.width / iSize.height);
          else 
              size.height = size.width * (iSize.height / iSize.width);
      }
      rect.size = size;
      return rect;
      

      }

      【讨论】:

        【解决方案3】:

        用你想要的颜色创建一个 UIImageView。从服务器创建图像,在图像视图中设置图像,然后设置contentMode = UIViewContentModeScaleAspectFit

        UIImageView *backgroundColorWhite = [[UIImageView alloc] initWithFrame:someObject.frame];
        backgroundColorWhite.backgroundColor = [UIColor whiteColor];
        UIImage *serverImage = [UIImage imageWithData:serverData];
        backgroundColorWhite.contentMode = UIViewContentModeScaleAspectFit;
        [backgroundColorWhite setImage:serverImage];
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-12-06
          • 1970-01-01
          • 2014-05-05
          • 2012-09-15
          • 2011-09-20
          • 2011-07-15
          • 2011-02-03
          • 2020-06-03
          相关资源
          最近更新 更多