[iPhone] 画像のサイズを変更、拡大縮小するCGRectMake (Objective-C)

画像を拡大・縮小して表示するにはどうするのでしょうか。
CGRectMake
CGAffineTransformMakeScale
を使う方法について見てみましょう。


Objective-C
Xcode 9.3.1

CGRectMake

画像の拡大縮小はUIImageViewのframeサイズをCGRectMakeを使って拡大縮小して画像を変更する方法とCGAffineTransformMakeScale を使うやり方があります。

UIImageViewの基本的な設定からの続きとして、同じように画像を「Add Files to …」としてプロジェクトに追加していきます。

https://i-app-tec.com/objective-c/uiimageview-oc.html

CGRectMake

画像の 幅、高さ を取得してそれにスケールファクターを掛け合わせることにより拡大と縮小ができます。

CGRectは位置とサイズの両方を管理するクラス、CGRectMake の引数として開始位置 x,y と幅と高さを設定します。


実際のサンプルコード

ViewController.m


画像が縦横半分になって表示されました。これは画像自体を半分にしているわけではなく、それを表示しているUIImageViewの枠であるframeサイズを元画像の半分にしているわけです。

CGAffineTransformMakeScale

CGAffineTransformMakeScale を使ってもできます。
これはアフェイン変換(CGAffineTransform)なので画像を回転させたりと他にも色々できますが、その中のシンプルなメソッドの1つMakeScaleを使います。


sx はX軸のスケールファクターで、syはY軸のファクター

ViewController.m


この例では画像サイズを半分にしていましたが、2倍するのも簡単にできます。


imageview_scale


References:
CGRectMake — Core Graphics | Apple Developer Documentation
CGAffineTransformMakeScale — Core Graphics | Apple Developer …