ここでいうアスペクト比とは長方形の高さに対する幅の長さのこと。
長方形の大きさだけが問題なのでCGSizeの関数を作る。
// アスペクト比の取得
CGFloat CGSizeGetAspect(CGSize size) {
return size.width / size.height;
}
// sizeに内接する、アスペクト比がaspectの長方形の大きさを返す。
CGSize CGSizeMakeAspect(CGSize size, CGFloat aspect) {
if (CGSizeGetAspect(size) >= aspect)
return CGSizeMake(size.height * aspect, size.height);
else
return CGSizeMake(size.width, size.width / aspect);
}
// sizeに外接する、アスペクト比がaspectの長方形の大きさを返す。
CGSize CGSizeMakeAspectFill(CGSize size, CGFloat aspect) {
if (CGSizeGetAspect(size) < aspect)
return CGSizeMake(size.height * aspect, size.height);
else
return CGSizeMake(size.width, size.width / aspect);
}
関数名はAVFoundationを参考にした。
CGSize~っていう名前の関数を作ってもいいんだろうか? ObjCでいうカテゴリ的なものだと思えば問題無し……か?