私のアプリのデザインでは、リモートサーバーからの画像に四角いスペースがあります。ただし、画像が正方形ではなく横長の矩形であることがあります。サイズに合わせてサイズを変更する画像
私は画像をトリミングするのではなく、方形の拘束の内側に収まるようにスケーリングし、残りのスペースを背景色で白く塗りつぶしてください。
私のアプリのデザインでは、リモートサーバーからの画像に四角いスペースがあります。ただし、画像が正方形ではなく横長の矩形であることがあります。サイズに合わせてサイズを変更する画像
私は画像をトリミングするのではなく、方形の拘束の内側に収まるようにスケーリングし、残りのスペースを背景色で白く塗りつぶしてください。
UIImageView
のcontentMode
をUIViewContentModeScaleAspectFit
に設定します。
これが役立つかどうかわかりませんが、画像のサイズに合わせてこれを使用します。指定された矩形を取り、それをトリミングしてイメージに一致させます。返された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;
}
したい色の背景色で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];
を設定します。