2012-01-13 32 views
2

私のアプリのデザインでは、リモートサーバーからの画像に四角いスペースがあります。ただし、画像が正方形ではなく横長の矩形であることがあります。サイズに合わせてサイズを変更する画像

私は画像をトリミングするのではなく、方形の拘束の内側に収まるようにスケーリングし、残りのスペースを背景色で白く塗りつぶしてください。

答えて

5

UIImageViewcontentModeUIViewContentModeScaleAspectFitに設定します。

1

これが役立つかどうかわかりませんが、画像のサイズに合わせてこれを使用します。指定された矩形を取り、それをトリミングしてイメージに一致させます。返された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; 

}

1

したい色の背景色で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]; 
を設定します。
関連する問題