2017-04-13 1 views
1

イム現在、コアグラフィックスでUIImageを編集UImageのサイズを取得する際にUIImageViewで私は維持したい画像上に描画する場合= AspectFill

ContentMode UIImageコンテンツモードが.aspectFill

に設定されている場合画像のスケール/比率。

アイブ氏は、次のコードを試みたが、

let imageSize = AVMakeRect(aspectRatio: (mainImageView.image?.size)!, insideRect: mainImageView.frame) 

すべてのヘルプは大幅に

トーマス

答えて

1

この関数は、唯一のアスペクトフィットを行うことができいただければ幸い.AspectFillそれはむしろ、その後.aspectFit値を返します。ここで

は、アスペクト塗りつぶしを行います関数です。

func makeFillRect(aspectRatio: CGSize, insideRect: CGRect) -> CGRect { 
    let aspectRatioFraction = aspectRatio.width/aspectRatio.height 
    let insideRectFraction = insideRect.size.width/insideRect.size.height 
    let r: CGRect 
    if (aspectRatioFraction > insideRectFraction) { 
     let w = insideRect.size.height * aspectRatioFraction 
     r = CGRect(x: (insideRect.size.width - w)/2, y: 0, width: w, height: insideRect.size.height) 
    } else { 
     let h = insideRect.size.width/aspectRatioFraction 
     r = CGRect(x: 0, y: (insideRect.size.height - h)/2, width: insideRect.size.width, height: h) 
    } 
    return r 
} 
+0

はどうもありがとうございました – Tom

関連する問題