[iPhone] Image, Text の合成 (Swift)

画像の上に別の画像を重ねたり説明文をいれたりしたい場合には、UIGraphicsBeginImageContextを使うと画像とテキストを合成できます。画像などを重ねるには他にも方法はありますが選択肢の一つです。

この例のように1枚の画像にテキストとアイコン画像を重ねて合成してみます。

image_combine_0
 

Swift 3.0
Xcode 8.0

 

sponsored link

UIGraphicsBeginImageContext

 
合成するものは

emmy

handbag

これとテキスト
「Emmy’s shopping in London.」です
 
画像は、Retina対応としてAssets.xcassets に入れます。

Retina 画像でない場合は
UIGraphicsBeginImageContextWithOptions
を使わないと画像が粗くなる場合があります。
 
ViewController.swift

UIGraphicsBeginImageContext() から
UIGraphicsEndImageContext() までに挟まれた中で描画

新しくできた UIImage newImage を
UIImageView でスケールしてスクリーンに描画しています

そのため、Emmy画像が大きい分、
余計にメモリを食っている可能性があります

本来ならば
UIGraphicsBeginImageContext(CGSize: size)
のsizeを最終画像サイズにすればいいのですが
それはまた面倒なこともあるので…

関連ページ